最近问题挺大的,别人都能A掉的题,我要么细节被卡,要么想不到正解,稍难受
T1:
一眼看上去像前缀和,然后日常想亦或怎么拆(当然是拆不了了,不满足结合律什么的),然后想到了差分,不过是O(n*q)的每行差分
正解是差分来维护差分,
在(r,c)处+1,(r+l,c+l)-1
那么在最后时,jz[i][j]+=jz[i-1][j-1]就是每一行差分数组的值,再每行从右往左前缀和即可
但这还不够,只有这个操作会给一个梯形全部+1
所以再独立开一个正方形差分数组来消除这种影响
注意MAXN开2010,消除三角形越界的影响
T2:
30能想到状压了,考试格外纠结最优策略指的是啥(因为样例模不过去)
其实策略是每一步从右/左选,而且有后效性,考虑可以记忆化搜索,因为有后效性,所以无论抽到的位置或相反位置有没有白球都要搜一遍取最大值
不太会题解证的状态上限为sigma(fib(n)),复杂度肯定是远小于O(2^n*n)
UPD:证明
st小时存数组,st大时hashmap
T3:
考场上把所有性质都推到了,结果打的贪心???正解神仙dp
80pts 骗分+randomsuffle保证贪心的局部正确性
<二元组dp第一次见>