正题
放假苟在电脑室打比赛懒得回家。
T1:环
因为保证是奇数,所以可以想出一个类似于增添补出或者漏一个的方法。
可以很容易的求出这个序列的id序列,和全部值的和。
处理出偶数位的前缀和和后缀和。对于一个偶数位,它的值就是pre[i]+las[i]-tot,对于一个奇数位,它的值就是tot-pre[i-1]-las[i+1];
T2:字符串
坑了我挺久的,要看懂题,对于m<n的情况,出现循环节当且仅当3*(n-m)=n,2*m=n或者n-m|gcd(n,m)
为什么我就不具体说了,自己可以画出来看看。
对于m>=n的情况,当且仅当 n|m,才成立。
T3:纸飞机
我就说好像做过这种题,首先要先去做做导弹拦截,知道一个性质,最少分割下降子序列个数与最长不下降子序列长度相等。
具体证明可以自行找规律。
那么这题就变成了删去其中一个数找最长不下降子序列的问题。
考虑什么样的点是“必需的”,也就是将它删去,最长不下降子序列长度一定减少,也就是出现了断层。
为了方便,我们从后往前做,把一个点所在的最长不上升子序列长度找出来,那么我们就可以很快的知道一个点是否存在于一条最长不下降子序列中。
对于同一层的点,也就是f值相等的点,我们看看是否存在多个点都满足存在于LIS中这个条件。如果存在,那么这些点都不是必须点,否则如果只有一个点,那么这个点就是必需点,其他同层点都不是。
输出的时候不是必需点的就输出mmax,否则输出mmax-1。
T4:排名估算
这题有点东西,学到了,单独讲,可以看学习笔记。