我的想法:
第的做法:
令b[i]=a[i+1]-a[i]。就变成求b的最短周期。对序列b求kmp得到next[1..n-1]。
再让p=n-1-next[n-1]。
那么答案就是T=a[p+1]-a[1]。
第二题:一开始想的是生成函数,但是好像不行。最后感觉只能DP暴力搞。好像又会超时。
第三题:模拟题。计算出每一步上下左右需要多少空间,然后二分查找即可。
第四题:优先队列,将以ak(k=1..n)为结尾a1为开头的扔进优先队列。每次取处最小的一个,然后再扔进一个,新的这个是原来那个的起始index+1,(如果无法扔进去就不执行)
第五题:经典的倒水题目。记忆化搜索。