HDU 4722 Good Numbers
2013-09-12 17:19
375 查看
题意:求出给定范围内的“Good Numbers”,也就是所有数位之和可以整除10即可
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722
思路:数位dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722
思路:数位dp
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std; #define LL long long LL digit[30]; LL dp[30][30]; LL dfs(LL pos , LL pre , bool doing){ if(pos == -1) return pre == 0; if(!doing && dp[pos][pre]!=-1) return dp[pos][pre]; LL ans = 0 , npre; LL end = doing ? digit[pos] : 9; for(LL i = 0 ; i <= end ; i ++){ npre = (pre + i) % 10; ans += dfs(pos - 1, npre , doing && (i == end)); } if(!doing) dp[pos][pre] = ans; return ans; } LL calc(LL x){ LL pos = 0; memset(dp , -1,sizeof(dp)); while(x){ digit[pos ++]= x % 10; x /= 10; } return dfs(pos - 1, 0 , 1); } LL a,b,ans; int main() { int T; scanf("%d",&T); for(int ncase = 1;ncase <= T;ncase++){ scanf("%I64d %I64d",&a,&b); ans = calc(b) - calc(a - 1); printf("Case #%d: %I64d\n",ncase,ans); } return 0; }
相关文章推荐
- HDU 4722 Good Numbers(DP)
- hdu 4722 Good Numbers 数位dp
- 【数位DP】 HDU 4722 Good Numbers
- HDU 4722 Good Numbers(找规律)
- hdu 4722 Good Numbers
- hdu 4722 Good Numbers(dp)
- HDU 4722 Good Numbers
- HDU 4722 Good Numbers
- hdu 4722 Good Numbers 数位dp
- hdu 4722 Good Numbers(数位dp)
- hdu 4722 Good Numbers(规律题)
- 【HDU 4722】Good Numbers
- HDU4722~Good Numbers(思路)
- HDU 4722-Good Numbers
- 【HDU】 4722 Good Numbers
- hdu 4722 Good Numbers 数位dp(2013 ACM/ICPC Asia Regional Online —— Warmup2 1007)
- HDU 4722 Good Numbers
- HDU 4722 Good Numbers(数位DP)
- hdu 4722 good numbers
- HDU 4722-Good Numbers-数位dp