hdu 3555数位dp基础入门题】的更多相关文章

#include<stdio.h> #define N 20 long long  dp[N][3]; void init(){ long long  i; dp[0][0]=1; for(i=1;i<=20;i++) {     dp[i][0]=dp[i-1][0]*10-dp[i-1][1];//没有考虑前导零的情况     dp[i][1]=dp[i-1][0];     dp[i][2]=dp[i-1][2]*10+dp[i-1][1]; } } long long  slov…
开始想用dp[i][j]来记录第i位j开头含有49的数的个数 但是init后并不知道如何进行cal 想了想可以用不要62的思想 当作不要49来做 然后减一下 就好 看网上的代码 不要62和这道题用的dp方法和cal都与我用的有很大不同 做完入门水题就去学习一下那种很正规的方法~ #include<stdio.h> #include<string.h> #include<algorithm> #include<map> #include<math.h&g…
Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 15072    Accepted Submission(s): 5441 Problem Description The counter-terrorists found a time bomb in the dust. But this time the terrorists…
Code: #include<cstdio> #include<algorithm> #include<cstring> #include<string> #include<iostream> using namespace std; #define ll long long #define N 20 ll f[N][4], str; int arr[N],n; void get_table(){ f[0][0]=1; for(int i=1;i…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位dp的模板题,统计一个区间内不含62的数字个数和不含4的数字个数,直接拿数位dp的板子敲就行,注意每次调用solve函数要初始化dp数组,否则之前调用的时候dp数组可能被记录过. AC代码: #include<iostream> #include<cmath> #include<algorithm> #include<cstdio> #include&…
http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以.他生平最恨情人节,无论是214还是77.他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=7*2 77=7*11 终于,他发现原来这一切归根究竟都是由于和7有关!所以,他如今甚至讨厌一切和7有关的数. 什么样的数和7有关呢? 假设一个整数符合以下3个条件之中的一个.那么我…
XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2265    Accepted Submission(s): 927 Problem Description #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then careful…
不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 58665    Accepted Submission(s): 23095 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意:求[n, m]区间内不含4和62的数字个数. 这题有两种思路,直接数位dp和dfs 数位dp: dp[i][j]表示i位数,首位是j的符合要求的数字个数. j = 4时    dp[i][j] = 0 j != 4时   例如求dp[3][2],2xx的个数,2已经确定了,2后面xx的个数即为2xx的个数,只用求出0x, 1x, 2x...9x的个数之和即可.同时要注意限制条件,dp[i…
开始学习数位dp...一道昨天看过代码思想的题今天打了近两个小时..最后还是看了别人的代码找bug...(丢丢) 传说院赛要取消 ? ... 这么菜不出去丢人也好吧~ #include<stdio.h> #include<string.h> #include<algorithm> #include<map> #include<math.h> #include<queue> using namespace std; int n,m; /…