3.1考试

T1:

树上连通块u的最远点一定是直径的一个端点!

性质不熟悉

LCT维护

直径更新一共6中情况,数组存一下然后暴力找

T2:

开花费桶300个,多重背包

价值不同?是前k大

前k大是凸函数,,,往单调性方向想

决策单调性?

可以证明。p<q,dp[p]+pre[i-p]<dp[q]+pre[i-q],由于有pre[i+1-p]-pre[i-p]<pre[i+1-q]+pre[i-q]所以决策有单调性!

分治去做

注意,必须要转移,所以转移用<=判断更新

T3:

A类似系数,B是n个行向量,Ai的系数选择或者不选择,B(1~n)线性表出

Ci的向量

其实只和C的矩阵的秩有关,只要B的基是C的基超集,那么其他C中的元素一定可以B来唯一线性表出(自由元就随意了)

所以考虑B的秩,B的秩一定大于C的

考虑A的系数,对于不是B的秩的元素系数位置,2^(n-rkb)种可能,是秩的只有一种,所以A的系数有:2^((n-rkb)*n))种

对于B,必须包含C的秩,只用考虑消完之后是否包含C的线性基

包含部分:h[n][rkc]表示长度为n-rkc的行向量n个,秩是rkc的方案数

剩下rkb-rkc的秩,g[n-rkc][rkb-rkc]表示,长度为n-rkc的行向量n-rkc个,秩是rkb-rkc的方案数

并且,对于那rkc个行向量后面的n-rkc的部分,必须被rkb-rkc消完,方案数是:2^(((rkb-rkc))*(rkc)) rkc表示有rkc个行向量

递推:g[i][j]=g[i-1][j]*2^j+g[i-1][j-1]*(2^(n-rkc)-2^(j-1))即加一个新的秩,或者不加(是一个容斥,减去被表示出来的)

枚举rkb,都乘起来即可

右下角会消得剩下rkb-rkc个1

猜你喜欢

转载自www.cnblogs.com/Miracevin/p/10458353.html
3.1