这题说的是给了一个二进制数R , 计算出 在[0,R) 区间内的数, 二进制中有n个1 个和n#include #include #include using namespace std;const int maxn =1005;typedef long long ll;const ll mod=1...
分类:
其他好文 时间:
2014-11-22 10:28:13
阅读次数:
162
题目大意:求 1(m)到n直接有多少个数字x满足 x可以整出这个数字的每一位上的数字思路:整除每一位。只需要整除每一位的lcm即可但是数字太大,dp状态怎么表示呢发现 1~9的LCM 是2520 ....也就是说只要对这个数mod2520 剩下的余数能整除lcm就可以整除了。。计数的时候还有一个技巧...
分类:
其他好文 时间:
2014-11-20 13:21:00
阅读次数:
146
1223: [HNOI2002]Kathy函数Time Limit:10 SecMemory Limit:162 MBSubmit:207Solved:90[Submit][Status]DescriptionInput仅有一行,为正整数mOutput输出仅有一个正整数,表示所有的满足f(n)=n,...
分类:
其他好文 时间:
2014-11-18 10:14:34
阅读次数:
767
阿拉~好像最近总是做到 AC 自动机的题目呢喵~题目的算法似乎马上就能猜到的样子…… AC 自动机 + 数位 dp先暴力转移出 f[i][j] :表示从 AC 自动机上第 j 号节点走 i 步且不碰到匹配串的方案数然后直接用数位 dp 一位一位的试就可以了,大家都会吧~但是…… 有前导 0 的情况真...
分类:
其他好文 时间:
2014-11-17 22:33:26
阅读次数:
290
如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。
有点数位DP的味道,这个要记得不相邻,但是自己跟自己可以。还有就是枚举的是往前插
dp[i][j] 长i,...
分类:
其他好文 时间:
2014-11-17 21:20:11
阅读次数:
140
题意:
给一个N和一个R(用二进制表示)
问 [0,R)二进制中含有N个1的数之和
样例 1 1000
答案为 1+2+4=7
思路:
数位dp[1002][1002]第几位含有几个1
然后需要存的有两东西一个是有多少个数,以及和是多少
接着转移的时候 就是状态的sum=这个site的位权*之后含有的个数+之后的和
记得个数和和都要取模,一开始个数忘记取模了 %>_
然后需要...
分类:
其他好文 时间:
2014-11-17 14:10:00
阅读次数:
187
题目链接:hdu 5106 Bits Problem
题目大意:给定n和r,要求算出[0,r)之间所有n-onebit数的和。
解题思路:数位dp,一个ct表示个数,dp表示和,然后就剩下普通的数位dp了。不过貌似正解是o(n)的算法,但是n才
1000,用o(n^2)的复杂度也是够的。
#include
#include
#include
using namespac...
分类:
其他好文 时间:
2014-11-16 12:08:06
阅读次数:
125
题目链接:zoj 3494 BCD Code
题目大意:给定n个2进制串,然后有一个区间l,r,问说l,r之间有多少个数转换成BCD二进制后不包含上面的2进制串。
解题思路:AC自动机+数位dp。先对禁止串建立AC自动机,所有的单词节点即为禁止通行的节点。接着进行数位dp,
dp[i][j]表示第i为移动到节点j的可行方案数,每次枚举下一位数字,因为是BCD二进制,所以每位数要一...
分类:
其他好文 时间:
2014-11-13 20:49:18
阅读次数:
229
题目链接:poj 3208 Apocalypse Someday
题目大意:给定n,输出第n大包含666的数字。
解题思路:数位dp,用类似AC自动机的思想进行转移。首先dp[i][j]表示说i位最后有j个连续6的情况数,这个预处理出
来。那么dp[i][3]即为i位有多少个满足的数。给定n,先确定位数d。然后从最高位向下判断,一开始肯定是需要3个连续
的6,所以u为3,然...
分类:
其他好文 时间:
2014-11-13 20:47:46
阅读次数:
157
给你一个字符串/表示当前位比前一位小-表示和前一位相等\ 表示比前一位大 求a到b之间有多少个数满足方案
dp[i][j][k] 到第i位满足字符串的第j位前一位是k的方案数
#include
#include
using namespace std;
const int maxn = 110;
char s[maxn], A[maxn], B[maxn];
int a[max...
分类:
其他好文 时间:
2014-11-13 10:58:52
阅读次数:
179