A. Appleman和Easy Task

时间:2017-07-25 11:00:01

标签: c++ acm

http://codeforces.com/contest/462/problem/A 这是一个问题,我想通过c ++解决它 有人可以向我解释他想要的东西 特别是问题的那一行

这就是答案,但我不能理解 https://github.com/ahmedalbarbary/Competitive-programming/blob/master/Codeforces%20-%20not%20mine%20codes/problem-%20462A%20-%20Appleman%20and%20Easy%20Task

感谢帮助我

1 个答案:

答案 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]的输入。这在实际输入矩阵周围留下“未使用的”边界单元。进步:不需要对要跳过的细胞进行测试。

由于在未使用的边界单元格不会对计数产生任何负面影响之前,内存充满了'*'

为什么要使用这个技巧:

该平台有望对边界单元执行读访问,并且比检查(对于每个单元)计数更快,是否必须跳过单元(以防止越界访问)。