康复训练

题目是随机的

bzoj3902
(A) 首先注意到行列的位置不影响答案,那么我们可以考虑从高到低考虑.设F[h][x][y][a][b]为已经考虑了一个x×y的子矩阵中的(x-a)×(y-b)子矩阵(而且这个子矩阵内的内容不影响其它内容,即它每行每列最大值都不等于当前考虑的值,从高到低做显然可以),其它那些行列最高都为h的方案数.那么我们可以容斥.
F[h][x][y][a][b]=(h+1)^(xy-(x-a)(y-b))-sum(i:(0->a),j:(0->b),i>=1||j>=1){(a choose i)(b choose j)h^(xy-(x-i)(y-j))F[h][x-i][y-j][a-i][a-j]}把一堆这样的东西乘起来就好了.

(B) 虽然上面那个可以过但是复杂度太高了.我们可以用容斥更快的算出这个东西.考虑G[h,x,y,a,b,i,j]为(x-a)(y-b)子矩阵不影响,其它部分要求除了那个与(x-a)(y-b)行列不相交的任意选出ij子矩阵(行列子序列)外都不可能高度达到h,那个ij子矩阵有可能达到h的方案数,那么

G[h,x,y,a,b,i,j]=
h^(xy-(x-i)(y-j)) (h+1)^((x-i)(y-j)-(x-a)(y-b)) (a choose i) (b choose j)

根据容斥原理,我们可以吧所有ab子矩阵不为行列最大全h的容斥掉(艹我在写什么),即,考虑每个限制条件max(行(i))=h或max(列(j))=h,我们要对满足这些的矩阵求并集,而G[...]是对其中选定的i行j列可能满足的矩阵求交集,那么可以直接容斥了.

bzoj2346
羞耻的边长01最短路

bzoj3293
随出来的题目质量都不太好啊= =..先考虑链上的..那么对于每个位置x肯定是如果前缀和超过了qx那么就往后推要么就往前推,即sum(abs(d[x]=pref[x]-qx)).然后考虑环上我们可以从n推到1那么我们考虑要推多少最好,假设推k那么答案就是sum(abs(d[x]+k))因为每个pref[x]-qx的已有流量基础上都减了k,d[n]=0然后向1推了k所以也是abs(d[x]+k),那么显然k应该取-中位数(d).

bzoj3992
以前看过没写..反正就是原根搞搞就变成加法了..然后卷积快速幂一下就没了..

bzoj2389
看了很长时间感觉是神题,看了题解后我就看不懂题目了.求哪位A了这题的大爷帮我解释一下

3 5
1 3
2 3
1 2
1 2
1 3

这个数据输出为什么是

0
0
1
3
7

谢谢了

bzoj2125
傻逼题.大概就是把仙人掌建树然后如果LCA在环上就讨论一下.然而我和PoPoQQQ拍上了却过不了,sad.

upd: 艹我A掉了.我仙人掌找环的时候设置id,然后我后面判断一个节点是不是在环上我直接用了id,而id被初始成0了(合法环下标)

bzoj4316
我居然1A了,不可思议..

Tree DP+simple cycle DP

掌握了一种比较好写的仙人掌缩树的姿势..?

bzoj1023
调了大概一个小时..

其实很简单的就是环上处理一下点对间的距离那把环给扩大一倍做就好了,维护两个指针和一个单调队列扫,假设子树x内最深点是fx,它在环上的位置是lx,那么y<x,x与y间的答案就是(fx+lx)+fy-ly.显然我们要维护fx+lx可能的最大值,就用单调队列随便干了.

出了一些小问题..第一个就是边界情况..为了不用vector搞得我"我感觉很难受"..然后就是forward list是倒着插边的那我还要反过来遍历环..然后就是碰到环顶时指针的处理(指针是可以越过环顶的)..

uoj87
myy的仙人掌

把虚树搞出来和1023类似DP..细节有点多..写的很丑..艹他爸爸我又在树剖上被坑一次..完了我连树剖都不会写了..

uoj158
静态仙人掌

仙人掌链剖..好难写啊QAQ..已经写好了明天晚上调..

我艹我他妈调到了一点钟...这个链剖有毒把...

原文地址:https://www.cnblogs.com/tmzbot/p/5763188.html