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

CSP 模拟35

时间:2020-11-27 10:59:30      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:组合   枚举   5*   假设   魔术   前缀   就是   预处理   重复   

A:组合

对于每个点 u向v建边

如果T=1的情况 那么就建双向边

然后去合法的情况一定是把所有边都走了一遍

也就是求图的欧拉路径

特判几种无解的情况就可以了




B:小W的魔术

原串为s1 喜欢的串为s2

假设s1长度len1 s2长度len2

所有方案一定是\(26^len1\)

考虑计算合法的串的种类

那么合法的原串一定满足 s1的前缀是s2的一段前缀 s1的后缀是s2的另外一部分

可以考虑枚举这个前缀的长度

那么首先前缀长度为len2的时候 答案为\(26^(len1-len2)\)

当前缀长度为len2-1时 答案也为\(26^(len1-len2)\)

但是发现会有重复 所以强制此时移走那一位不为原先的字符 那么贡献变成了\(25*26^(len1-len2-1)\)

以此类推 发现除了第一次每一次的贡献其实都是一样的

然后就可以表示出合法串的数量了 冲个快速幂就可以了





C:小Y的图

原题 货车运输

但是考试的时候没想到

总觉得是可持久化并查集预处理之后 二分答案

然后就挂掉了

建最小生成树 然后倍增找答案就好了





小L的数




CSP 模拟35

标签:组合   枚举   5*   假设   魔术   前缀   就是   预处理   重复   

原文地址:https://www.cnblogs.com/2004-08-20/p/14027036.html

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