2021 CCPC 新疆省赛 补题 E
做了好几天的题,着实难受,有几题根本想不到这样写。4.3比赛。
E-Problem E. array_2021 CCPC 新疆省赛 (nowcoder.com)


BF是肯定不行的。这代码的意思是循环非零元素。
可以证明,当令a为x,b为y,c为z时,(x+y)% n必定为Z。
而且a中每一种元素必定与b中元素遍历相加,并且只加一次。
有一些特例比如从c[y] = 0 + b[x]是最大那么将不会被遍历到。
那么 b[x] 一定是两个数组的最大值 用反证法可以证明。
最后便可得出代码。
这只是很简单的减短了循环而已,如果没有非零元素,那么和BF将没有什么不同。
我用了一个更优的算法,不行,我真是服了。
优先队列法,把最大的两个进去,算出c【i】加入c,压入两个,分别是a的第一大和b的第一二大,a的第二大和b的第一大,依次循环,只要把c填满就行了。但是不行,卡在80%,挺可惜的。