摘要: 很容易想到暴力的转移:f[i][j]表示较长串的前i个字母,最后和不吉利数字相同的已经有j个。价格数组g[j][k]表示第j个不吉利前缀转移到不吉利前缀k的方案数。然后kmp一下就能求得g数组。看到n是1e9,矩阵快速幂优化即可。 cpp include include include using 阅读全文
posted @ 2018-07-29 20:01 SWHsz 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 状压DP。 设计状态f[i]表示奶牛的状态为i时,所有奶牛的可用耐力最小值,随便转移一下就行了。(翻译的大兄弟,没有翻译不可行的情况,wa了一次。。。) cpp include include include using namespace std; const int N=25; long lon 阅读全文
posted @ 2018-07-29 18:07 SWHsz 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 可持久化并查集的好题啊。。。(flag:补克鲁斯卡尔重构树。。。) 先dijkstra求一下1号点到每个点的距离,再用可持久化并查集维护一下联通性与联通块内哪个点离1号点最近。upper_bound一下,再查询,时间复杂度可行。 cpp include include include include 阅读全文
posted @ 2018-07-29 16:47 SWHsz 阅读(140) 评论(0) 推荐(0) 编辑