hdu 3555 Bomb(数位dp)
2013-07-27 11:29
465 查看
Bomb
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 4054 Accepted Submission(s): 1401
Problem Description
The counter-terrorists found a time bomb in the dust. But this time the terrorists improve on the time bomb. The number sequence of the time bomb counts from 1 to N. If the current number sequence includes the sub-sequence "49", the power of the blast would
add one point.
Now the counter-terrorist knows the number N. They want to know the final points of the power. Can you help them?
Input
The first line of input consists of an integer T (1 <= T <= 10000), indicating the number of test cases. For each test case, there will be an integer N (1 <= N <= 2^63-1) as the description.
The input terminates by end of file marker.
Output
For each test case, output an integer indicating the final points of the power.
Sample Input
3 1 50 500
Sample Output
0 1 15 HintFrom 1 to 500, the numbers that include the sub-sequence "49" are "49","149","249","349","449","490","491","492","493","494","495","496","497","498","499", so the answer is 15.
Author
fatboy_cw@WHU
Source
2010 ACM-ICPC Multi-University
Training Contest(12)——Host by WHU
Recommend
zhouzeyong
题意:找1~N的包含49的数的个数
#include<stdio.h> #include<string.h> long long dp[28][3],n,res; int c[28]; int main() { int i,t,flag,len; memset(dp,0,sizeof(dp)); for(dp[0][0]=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][1]+dp[i-1][2]*10; } scanf("%d",&t); while(t--) { scanf("%I64d",&n); memset(c,0,sizeof(c)); res=flag=len=0; n++; while(n) { c[++len]=n%10; n/=10; } for(i=len;i>=1;i--) { res+=dp[i-1][2]*c[i]; if(flag) res+=dp[i-1][0]*c[i]; if(!flag&&c[i]>4) res+=dp[i-1][1]; if(c[i+1]==4&&c[i]==9) flag=1; } printf("%I64d\n",res); } return 0; }
相关文章推荐
- hdu 3555 Bomb (数位dp)
- hdu_3555_Bomb(数位DP)
- hdu 3555 Bomb(数位dp)
- HDU 3555 Bomb(数位dp)
- HDU 3555 Bomb(数位DP)
- HDU 3555 Bomb 简单数位DP
- hdu 3555 Bomb 【数位DP】
- hdu 3555 bomb 数位dp
- HDU-3555-Bomb-数位dp
- HDU 3555: Bomb (数位DP)
- hdu 3555 Bomb 数位dp
- HDU 3555 Bomb (数位DP)
- hdu_3555_Bomb(数位DP)
- hdu 3555 Bomb 经典数位DP
- HDU 3555 Bomb 简单数位DP
- 【HDU】3555 Bomb 数位DP
- hdu 3555 Bomb(数位dp)
- HDU-3555 Bomb 数位DP
- hdu---(3555)Bomb(数位dp(入门))
- hdu 3555 Bomb(数位DP)