#6
查看原帖
#6
282929
柳易辰楼主2021/10/13 08:41

关于 #6 的数据,我困了很久。

我虽然没有把那个数据点下下来,

但我可以简单讲一下改数据点卡的地方。

手造一组类似 #6 的 Hack:

3
rwb

是不是很多 WA 了 #6 的输出

4

那是因为你们在计算的时候:

从左到右的循环计算了

rw
cnt = 2

从右到左的循环计算了

wb
cnt = 4

所以这个 Hack WA 了, #6 也 WA 了。

 

如何修改

第一层循环内:

stop = i
for (int j = i; j < n + i; ++j)

在跳出前记录:

else
{
	stop = i;
	break;
}

第二个从右向左的循环:

for (int j = n + i - 1; j >= stop; --j)

这样既省了 n×3n\times3 的空间,又解决了 #6 的问题。

2021/10/13 08:41
加载中...