http://codeforces.com/contest/462/problem/A 这是一个问题,我想通过c ++解决它 有人可以向我解释他想要的东西 特别是问题的那一行
感谢帮助我
答案 0 :(得分:0)
你必须计算每个细胞[i,j]
单元[i,j-1],单元[i,j + 1],单元[i-1,j],单元[i + 1,j](即相邻单元,即相邻单元)中有多少包含'o'
。
如果count是偶数(对于每个单元[i,j]),结果为“是”,否则为“否”。 (因此,当检测到第一个奇数时,可以完成测试。)因此,0也被计为偶数(当然)。
可能的问题:
对于边界单元格,必须跳过某些测试以防止越界访问。
该解决方案使用了一个技巧:它存储从indices [1,1]开始而不是index [0,0]的输入。这在实际输入矩阵周围留下“未使用的”边界单元。进步:不需要对要跳过的细胞进行测试。
由于在未使用的边界单元格不会对计数产生任何负面影响之前,内存充满了'*'
。
为什么要使用这个技巧:
该平台有望对边界单元执行读访问,并且比检查(对于每个单元)计数更快,是否必须跳过单元(以防止越界访问)。