" 传送门 " $ZHX\; TQL$ Orz 我们先考虑边权都是$1$的情况,此时只需要一个很简单的DP就可求出答案。 $dp[i][j]$表示从i到j的方案总数,则$dp[i][j]=\sum_{k=1}^n dp[i][k]\cdot dp[k][j]$,虽然我们的方程是正确的,但它会$\tt ...
分类:
其他好文 时间:
2018-08-20 21:49:16
阅读次数:
136
题面 "题目传送门" 解法 显然,可以回到初始状态就意味着一定由若干个环组成 假设环的长度为$l_i$ 那么,我们可以得到$\sum l_i=n$ 不考虑自环的情况,那么$\sum l_i≤n$ 将$n$以内的质因数全部筛出,强制每一次只取某一个质数的次幂,那么就可以解决重复计数的问题 时间复杂度: ...
分类:
其他好文 时间:
2018-08-14 11:17:52
阅读次数:
155
Description: windy学会了一种游戏。 对于1到N这N个数字,都有唯一且不同的1到N的数字与之对应。 最开始windy把数字按顺序1,2,3,……,N写一排在纸上。 然后再在这一排下面写上它们对应的数字。 然后又在新的一排下面写上它们对应的数字。 如此反复,直到序列再次变为1,2,3, ...
分类:
其他好文 时间:
2018-08-04 18:51:56
阅读次数:
147
数位DP的第一题(历时7天的惨痛经历。。。) 数位DP通常用f[i][j]或者在加几维,代表长度为i,最高位为j的合法数字的个数 本题 : windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道, 在A和B之间,包括A和B,总共有多少个w ...
忘记limit不能记WA了一发…… 典型数位dp,变成work(r) work(l 1),然后dfs的时候记录w当前位置,la上一个数选的什么,lm当前位是否有上限,ok当前位是否可以不考虑差大于等于2的情况(前面全是0) 然后对于lm和ok都为0的情况记忆化一下即可 啊bzoj不知道为啥给cmat ...
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1026 迷恋上用dfs写数位dp了。 ...
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1026 蛮简单的数位DP,预处理 f[i][j] 表示 i 位数,以 j 开头的 windy 数个数; 但不明白为什么最后一位拿出来特判 ret++ 不对,而写在循环里,特判 i==1 就对了. ...
1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int f[55][2510],g[55][55],c[55]/*为第n行需要改变的次数就是颜色变了的次数*/,dp[2510],crt[55][2510]; 7... ...
分类:
其他好文 时间:
2018-07-06 21:32:35
阅读次数:
151
Description windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数? windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 wi ...
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1297 一看感觉是矩阵快速幂之类的,但边权不好处理啊; 普通的矩阵快速幂只能处理边权为1的,所以想办法把边权处理成1; 仔细一看还有一个条件是边权小于10; 所以拆点!把一个点拆成10个点表示到 ...
分类:
其他好文 时间:
2018-07-02 17:13:36
阅读次数:
153