[ZJOI2016]小星星:设f[i][j][k]表示i子树对应j,i子树集合为k的答案。实际上k可以去掉,但是映射的会重复,所以要容斥。
lg2664:树分治,分贡献为在当前子树外/内讨论。
loj3248:把每个传送门投射到平面上形成一条直线,发现最优的走法是从一个点一直向第一个向上的拐点走,这个是固定的可以直接预处理,把(i,a[i])投射到平面上,然后使用凸包预处理。
jzoj6175:https://www.cnblogs.com/cszmc2004/p/12781473.html
bzoj4936:对栈插入字典树,发现若[l,r]合法则l-1处的栈=r处的栈,设sol(l,r)表示为(l,r)构造合法方案,括号匹配的位置pos={max(x)|s[x]==s[l]且f[x+1,r]==1}(不知道如何证明),暴力寻找指针,在寻找指针的时候记录现在指针左边的第一个指针,先做[pos+1,r],则这个指针移到了左边,继续做[l,pos-1]。指针会一直往左边移动,时间复杂度O(n)
uoj477:没有下箭头的情况所有点的概率是独立的,把和压进去dp,有下箭头的情况容斥,把总和减去上箭头的容斥系数,容斥系数不用压成状态每次取负即可。
uoj449:使用期望的线性性转化为有1个被填成b,其他都填成a的概率,再容斥成一个被填成b,至少有1个没有被填成a的方案数。考虑选择序列,是个指数型生成函数,求幂要求导解决,乘上1/m^i统计答案。
lg3735:
uoj502:
jzoj5562:
uoj507:把图像反转,从上往下扫,维护"黑色连续段",每次添加星星,设f[i]表示第i行不被覆盖的代价,在添加星星时分是否移走这个星星讨论,同时更新f,f的更新时个区间加单点查询使用bit维护。