码迷,mamicode.com
首页 > 其他好文 > 详细

省选模拟八十六 题解

时间:2020-05-02 23:22:00      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:题解   记录   line   inline   有关   出现   子集   hash   复杂度   

T1
设end(i)代表以\(i\)为结尾的路径个数
\(f[i][j][k][l]\)代表考虑了\(i\)个点
其中有j/k个点是\(end\)为奇的白/黑点
暴力就是\(O(n^4)\)
发现转移的式子其实只跟j/k是否为0有关
并不关心他的具体值
所以只需要记录是否出现即可
复杂度\(O(n)\)

T2
容斥
\(f[i]\)代表\(1\)能到达的点集是\(i\)的方案数(其他点不考虑)
\(g[i]\)代表从\(2\)出发
则有:
\(f[i]=2^e(i)-\sum_{j是i的真子集}f[j]*2^{e(i-j)}\)
g的转移同理
\(ans=2^m-\sum_{j是S的真子集,k是S-j的真子集}f[j]g[k]2^{e(S-j-k)}\)

T3
1>存在一种最优解使得每段相差一
2>设\(f[i]\)代表从\(i\)开始一段接下来的最大段数,\(f[i]<=f[i+1]+1\)
考虑动态维护\(Hash\)并且不断减\(f[i]\)直到合法
复杂度\(O(n+S)\),\(S\)为本质不同子串个数

省选模拟八十六 题解

标签:题解   记录   line   inline   有关   出现   子集   hash   复杂度   

原文地址:https://www.cnblogs.com/AthosD/p/12819961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!