今天AK了。正如题面中所写,这一场好像就是入门组模拟赛。
过程
开场先看A题,思考了20分钟,没有什么想法,于是跳过这道题,开始往后看。
结果发现B很简单,就花5分钟切了,然后发现C也很一眼,20分钟写了个三方不管了,结果发现D是完完全全的送分题,花了2分钟打完。
这时,时间差不多过了一个小时,检查了一下,觉得300分已经到手了,就开A。
看这 729 的数据范围,就感觉是三方直接冲。思考了20分钟,想出了三方做法,然后开写,再调了一会,在10:00左右过了大样例,但是极限数据要跑12s,然后加了亿点剪枝,卡进了1s,这时大概10:30。
剩下时间反复检查+打瞌睡……
A
这是本场最难的一道题,但是这道题相比原题缩小了数据范围(1000->729),再加上3s的时限,使得 $O(n^3)$ 通过此题不再是幻想。
先记录一下我的很简单的三方做法:
不难发现向左和向右操作是本质相同的,向上和向下操作也是本质相同的,于是只需考虑向左和向上操作的最小次数。
要最小化两个的和,只能枚举向上的次数,然后算出向左的最小次数。枚举了向上的次数,就可以算出每个点至少需要多少次向左才能使它变成黑色。然后类似prim求最小生成树一样bfs,求出一个黑点到其他所有黑点至少需要向左几次就可以了。
复杂度 $O(n^3)$ 可以加许多剪枝。
此外,还可以看看洛谷的题解,可以整体二分。P7274 草地 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
其他题都很简单,就不写了。
标签:三方,剪枝,20,分钟,次数,向上,10.17 From: https://www.cnblogs.com/william555/p/16804641.html