hdu 4722
比赛的时候这道题一直都没出来,承启提醒我之后还是一直WA;
其实规律早就找到了````
其实这题还可以用数位dp来做,不过从来没写过,以后再贴;
代码:
1 #include<iostream> 2 #define ll long long 3 using namespace std; 4 5 ll get(ll n) 6 { 7 int s=0; 8 ll i=n/10*10; 9 ll m=n,ans=0; 10 for(;i<=m;i++) 11 { 12 n=i; 13 s=0; 14 while(n) 15 { 16 s+=n%10; 17 n/=10; 18 } 19 if(s%10==0) ans++; 20 } 21 return ans; 22 } 23 24 ll getans(ll n) 25 { 26 if(n<0)return 0; 27 if(n<=10) return 1; 28 return n/10+get(n); 29 } 30 31 int main() 32 { 33 int t,ca=1; 34 ll a,b; 35 cin>>t; 36 while(t--) 37 { 38 cin>>a>>b; 39 a--; 40 cout<<"Case #"<<ca++<<": "; 41 cout<<getans(b)-getans(a)<<endl; 42 } 43 return 0; 44 }