标签:ace arch imp acm-icpc amp sub icp gre ota
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 18060 Accepted Submission(s): 6639
1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cctype> 5 #include<cmath> 6 #include<cstring> 7 #include<map> 8 #include<stack> 9 #include<set> 10 #include<vector> 11 #include<algorithm> 12 #include<string.h> 13 typedef long long ll; 14 typedef unsigned long long LL; 15 using namespace std; 16 const int INF=0x3f3f3f3f; 17 const double eps=0.0000000001; 18 ll N,dp[33][3],sum; 19 int bit[33]; 20 int main() 21 { 22 int i,j,T,len; 23 memset(dp,0,sizeof(dp)); 24 dp[0][0]=1; 25 for(i=1;i<=20;i++){ 26 dp[i][0]=dp[i-1][0]*10-dp[i-1][1]; 27 dp[i][1]=dp[i-1][0]; 28 dp[i][2]=dp[i-1][1]+dp[i-1][2]*10; 29 } 30 scanf("%d",&T); 31 while(T--){ 32 scanf("%I64d",&N); 33 N++; 34 len=sum=0; 35 while(N){ 36 bit[++len]=N%10; 37 N/=10; 38 } 39 bit[len+1]=0; 40 bool flag=0; 41 for(i=len;i>=1;i--){ 42 sum+=dp[i-1][2]*bit[i]; 43 if(!flag&&bit[i]>4) sum+=dp[i-1][1]; 44 if(flag) sum+=dp[i-1][0]*bit[i]; 45 if(bit[i+1]==4&&bit[i]==9) flag=1; 46 } 47 cout<<sum<<endl; 48 } 49 return 0; 50 }
标签:ace arch imp acm-icpc amp sub icp gre ota
原文地址:http://www.cnblogs.com/Aa1039510121/p/6833480.html