hdu 4722 Good Numbers(数位dp)
来源:互联网 发布:c语言转换汇编语言 编辑:程序博客网 时间:2024/05/22 14:31
Good Numbers
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3453 Accepted Submission(s): 1090
Problem Description
If we sum up every digit of a number and the result can be exactly divided by 10, we say this number is a good number.
You are required to count the number of good numbers in the range from A to B, inclusive.
You are required to count the number of good numbers in the range from A to B, inclusive.
Input
The first line has a number T (T <= 10000) , indicating the number of test cases.
Each test case comes with a single line with two numbers A and B (0 <= A <= B <= 1018).
Each test case comes with a single line with two numbers A and B (0 <= A <= B <= 1018).
Output
For test case X, output "Case #X: " first, then output the number of good numbers in a single line.
Sample Input
21 101 20
Sample Output
Case #1: 0Case #2: 1HintThe answer maybe very large, we recommend you to use long long instead of int.
Source
2013 ACM/ICPC Asia Regional Online —— Warmup2
Recommend
zhuyuanchen520
题意:求A到B之间 各个位数的和sum%10==0 的数的个数。
题解:数位dp,dp[i][j]表示当前i位mod10=j的个数。
#include<cstring>#include<cstdio>#include<algorithm>#include<iostream>#include<cstdlib>#define ll long longusing namespace std;int n;ll dp[20][20];int num[20];ll a,b;ll dfs(int i,int mod,bool e) { if(i<=0)return mod?0:1; if(!e&&dp[i][mod]!=-1)return dp[i][mod]; ll res=0; int u=e?num[i]:9; for(int d=0; d<=u; d++) { int Mod=(mod+d)%10; res+=dfs(i-1,Mod,e&&d==u); } return e?res:dp[i][mod]=res;}ll solve(ll x) { int len=1; ll k=x; while(k) { num[len++]=k%10; k/=10; } num[len]=0; return dfs(len-1,0,1);}int main() { //freopen("test.in","r",stdin); int t; memset(dp,-1,sizeof dp); cin>>t; int ca=1; while(t--) { scanf("%I64d%I64d",&a,&b); printf("Case #%d: %I64d\n",ca++,solve(b)-solve(a-1)); } return 0;}
0 0
- hdu 4722 Good Numbers 数位dp
- 【数位DP】 HDU 4722 Good Numbers
- hdu 4722 Good Numbers 数位dp
- HDU 4722 Good Numbers (数位dp)
- [数位dp] hdu 4722 Good Numbers
- hdu 4722 Good Numbers(数位dp)
- hdu 4722 Good numbers(数位DP)
- HDU 4722-Good Numbers-数位dp
- 【HDU 4722】Good Numbers(数位dp)
- HDU 4722 Good Numbers(数位DP)
- HDU 4722 Good Numbers(数位DP)
- HDU 4722Good Numbers(数位dp)
- HDU 4722 Good Numbers(找规律+数位DP)
- hdu 4722 Good Numbers(初涉数位dp)
- Good Numbers (数位DP)
- HDU 4722 Good Numbers 数位dp或找规律枚举 数位dp感悟
- HDOJ 4722 - Good Numbers 数位dp
- HDOJ 4722Good Numbers 数位DP
- 如何编写Xcode 插件
- 初识html
- poj_1877
- 索引的建立方式,直接会影响到查询性能。
- ZOJ 3888Twelves Monkeys
- hdu 4722 Good Numbers(数位dp)
- @Autowired与@Resource的区别
- C++中的内存!(转载)堆 栈 全局/static变量区 常量区
- guess
- 苹果系统mac下vim编辑器开启代码高亮、行号
- ZOJ 3890Wumpus
- select,poll,epoll
- 《开源公开课1》:开源框架构建与实践
- 程序设计方法学基本概念汇总