2018年8月17日训练日记

昨天多校比赛的时候查过的东西:

【BZOJ4318】OSU! 昨天多校的E题是这道题的推广。这道题是利用公式(x+1)^3-x^3=3*x^2+3*x+1,可以得到f[i]=f[i-1]+(3*g[i-1]^{2}+3*g[i-1]+1)*a[i]。然后g[i]^2g[i]可以由g[i-1]^2g[i-1]直接转移。就可以求出f了。昨天的E题不一定是3次方,m未知。本来是想考斯特灵数,结果各路大神们(Orz)还有我们的队长用区间dp思想过了。。。然后其实直接计算连续1的概率累加期望就可以了。。。(其实主要还是因为我读错题了)

【BZOJ3155】Preprefix sum 给你一个序列a,让你维护a的前缀和的前缀和。两种操作:1、把a[i]变成x 2、查询i位置的前缀和的前缀和。

对于原数列a1,a2,a3,a4...

S为  1*a1, 1*a1+1*a2, 1*a1+1*a2+1*a3...

SS为1*a1, 2*a1+1*a2, 3*a1+2*a2+1*a3...

观察系数,发现从大到小变化,但序号却由小到大

比较一下,可以尝试把S乘一个i,消掉系数最大的

得到  1*a1, 2*a1+2*a2, 3*a1+3*a2+3*a3...

这样与SS作差,就可以又得到一个系数与序号正比的式子

       0*a1, 0*a1+1*a2, 0*a1+1*a2+2*a3...

再观察,这就是个前缀和而已

所以用树状数组维护一遍原前缀和,再维护(i-1)*a[i]的前缀和即可。题解在这里。

然后F题题解说是用字典树,但是我看大部分用的是kmp"自动机"和AC自动机。都不是纯模板,需要一些优化。这个字符串匹配不是普通的字符串,比如s数组为aaaaaab-b-b-,t数组是aaaaaaaa,那么每次加入一个b字母,j=nxt[u][j]就要不停地调到0,这样复杂度会退化为tlen*slen.....普通字符串不会是因为每次匹配出来的长度都在模式串和文本串中同时出现,而这个文本串是会减去的,就会出现问题,所以要用一个nxtval数组的做法,是保证失败以后一定到达一个不同的字母的下一个地方。AC自动机的做法十分神奇。。。题解已经发布。。。

HDU 5729 Rigid Frameworks(组合数学+DP)题意:矩形是不稳定的,会变成平行四边形,但是可以在矩形对角线加边使这个矩形稳定下来。给一个n*m(n,m<=10)的矩形,可以在格里加两种对角线(主对角线或斜对角线),或者不加对角线,问使这个n*m的矩形稳定下来的方案数 。问题转化为一个左边n个点右边m个点的连通二分图个数 。看不懂,先贴一个题解:这里

接下来就是把饶齐博客再看一遍。。。

猜你喜欢

转载自blog.csdn.net/LSD20164388/article/details/81771838