hdu 3652 打表】的更多相关文章

思路:直接打表 #include<cstdio> #include<vector> #include<cmath> #include<iostream> using namespace std; ]={,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,…
hdu 3652 B-number Problem Description A wqb-number, or B-number for short, is a non-negative integer whose decimal form contains the sub- string “13” and can be divided by 13. For example, 130 and 2613 are wqb-numbers, but 143 and 2639 are not. Your…
B-number Problem Description A wqb-number, or B-number for short, is a non-negative integer whose decimal form contains the sub- string "13" and can be divided by 13. For example, 130 and 2613 are wqb-numbers, but 143 and 2639 are not. Your task…
题目链接: Hdu 3652 B-number 题目描述: 给出一个数n,问 [1, n]区间内有几个数能被13整除并且还有13这个子串? 解题思路: 能整除的数位DP,确定好状态随便搞搞就能过了.dp[x][mod][y][z] 表示 x位的整数,mod 13 等于几, y表示是否出现过13, 最后一位是z. 还有就是发现记忆化搜索 + 数位dp写出来真的很美讷.不说了,直接上代码,干净粗暴. #include <vector> #include <cstdio> #includ…
hdu 3652 题意:求1到n中包含'13'('13'不一定连续)且能被13整除的数的个数. 这是我第一道比较了能看懂的数位dp.定义状态dp[pos][res][sta]表示处理到第pos位,模的余数为0,sta取0,1,2,0表示无'13',1表示有1无3,2表示有'13'. 特别注意就是16行只要i==1时,nsta就是1,不用加sta=0,否则会WA.... #include<iostream> #include<cstring> using namespace std;…
http://acm.hdu.edu.cn/showproblem.php?pid=3652 题意:求数位含有13和可以被13整除的数字个数. 思路:记录3种状态: st == 0 表示 从最高位到第 i 位既不包含 "13" 末尾也不包含 "1". st == 1 表示 末尾包含 "1". st == 2 表示 从最高位到第 i 位含有 "13". 可以被 13 整除的话用一个参数来记录从最高位到第 i 位的和对 13 取模…
http://acm.hdu.edu.cn/showproblem.php? pid=3652 大致题意:"B-number"即一个整数含有子串"13"且被13整除.求1-n之间这种数的个数. 思路:有两个限制条件:含有子串"13"和能被13整除. 那么设dp[site][mod][flag].表示到第site位对13取余为mod且标记为flag的数的个数.flag表示是否含有子串"13". 然后进行记忆话搜索. #inclu…
http://acm.hdu.edu.cn/showproblem.php?pid=4542 给出一个数K和两个操作 如果操作是0,就求出一个最小的正整数X,满足X的约数个数为K. 如果操作是1,就求出一个最小的X,满足X的约数个数为X-K. 对于操作0,分析见这里,搜索需要有力剪枝.对于操作1,代表1至X中不是X的约数个数为K,看似还是搜索,但是由于时限卡的丧心病狂...所以用打表完成 d[i]先用来表示i的约数个数,然后可以模仿素数打表,对于每个数的每个倍数,其d值都自减1,这样就求出每个i…
http://acm.hdu.edu.cn/showproblem.php?pid=1223 一般遇到这些题,我都是暴力输出前几项,找规律.未果. 然后输出n = 1时候,以A开始,有多少个答案, n = 2的时候,A开始,B开始,有多少个答案.然后发现了规律.大数之 + ; struct node { int val; int id; bool operator < (const struct node & rhs) const { if (val != rhs.val) return v…
BC # 32 1002 题意:给出一个数组 a 和一个数 K ,问是否存在数对( i , j ),使 a i   - a i + 1 +……+ (-1)j - i  a j : 对于这道题,一开始就想到了是前缀和,但是如果只是记录下前缀和数组,那么查找就会成为一个大问题.补题的时候一开始考虑用 hash 数组或者是 set 存,但是很明显 TLE 了,在翔神的推荐下,我研究了一下 hash表的创建过程,惊奇地发现,其实就是建了一个 HashMap 结构体,而里面放了这个表所用的数组以及相应操作…