[训练日志]8月1-7日

codeforces 509F
[有定一棵树的深度遍历序,求树的形态数量]
[dp[i][j]表示i到j的序列表示成一棵树的方案数,d[i][j]表示i到j能表示成若干并列子树的方案数,则

d[i][j]=dp[i][j]=d[i+1][j];

for (k=i;k<j;k++)

if (a[k+1]>a[i])

d[i][j]=(d[i][j]+dp[i][k]*d[k+1][j])%P;

]

 

 
codeforces 142C
[给n*m个空间,求能装下多少个T]
[状压+暴力。具体来说记录两层的状态,枚举填的情况得到第三层的状态。]
 
 
codeforces 294E
[给一颗带边权的树,你可以调整一条边的端点,求两两距离和最小是多少]
[对于每一条边计算出原来在两个端点所在子树的路径和,以及对应子树最小路径和,更新答案]
 
 
codeforces 513G2
[给一个排列,每次随机选一个区间翻转,求若干次后逆序对期望]
[f[i][j]表示第i个位置的数比第j个位置大的期望。枚举n^2种区间的情况。按ij在不在区间内计算新的位置,更新贡献]
 
 
codeforces 87D
[每个边有一个权值,对于一条路径上最大权值的边会被种上一棵树。求n*(n-1)条路径后那条边有最多的树]
[把边按从小到大加,每次加入相同权值的若干颗树。每连上一条边后更新子树size,那条边的答案就是sz[x]*(sz[top]-sz[x])]
 
 
codeforces 28C
[n个人随机去m个浴室。第i个浴室有ai个接口,求最大期望排队长度。]
[f[i][j][k]表示前i个人去前j个浴室最大排队长度为k的概率。枚举下一个浴室去的人数。中间需要计算组合数]
[注意精度不要炸。精确到10^-9就需要eps更小]
 
 
 
原文地址:https://www.cnblogs.com/jszkc/p/7309546.html