AC代码git
对于给定矩阵,剩余可用的位置的数目是肯定的,根据奇偶性判断就完事了。github
若是数组\(b\)有0有1,那么Yes。不然只有数组\(a\)本来就有序才Yes。数组
由于是\(a\)和\(b\)是排列,因此固定数组\(b\),\(a_i\)对结果有贡献的偏移量是一个常量。因此只须要统计出全部的偏移量,偏移量的出现次数的最大值就是答案。spa
首先一个明显的结论:如有G和B相邻的状况则No。get
而后我就直接猜结论:封锁全部B的四周,如果全部的G都能逃离且没有B能逃离,则Yes,不然No。it
封锁四周就直接枚举,判断能不能逃离就从出口开始作一次BFS。io
猜结论:答案就是任意3个数或起来的最大值。ast
证实:只须要证实任意4个数的答案不会比3个数的答案更优便可。任取4个数,设此时某个\(i\)对结果有贡献,那么\(i\)位上至少有\(2\)个1,那么任意扔掉一个数,仍是知足\(i\)对答案有贡献的条件,因此任意4个数的答案不会比3个数的答案更优。class
经过交换先后缀,能够实现一下两个操做:test
而后就能够推出:只要全部的\((a_i, a_{n-i+1})\)都有对应的\((b_j, b_{n-j+1})\)与之匹配,那么就Yes,不然No。
而后就跑出全部的\((a_i, a_{n-i+1})\)和\((b_j, b_{n-j+1})\),而后排个序判断是否一一对应就行了。
终于不自闭下分了,以前两场直接掉了160分,我人都傻了。
这场直觉场,我就C题卡了一下子,而后E看错题目作了道假题。(因此这场我A了7道题?)