codeforce A - Sequence with Digits
生活随笔
收集整理的這篇文章主要介紹了
codeforce A - Sequence with Digits
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈接
已知遞推公式,告訴a1,和k,求ak
每個數字各位中最大的數字,和最小的數字相乘。
比如513,minDigit(513)=1,maxDigit(513)=5
數據量
暴力long long最大9×10189\times10^{18}9×1018!!!
取出一個數字的每一位取余10再除10.
long long Max(long long x){while(x){ll a=-1;a=max(a,x%10);//最低位x/=10;//抹掉最低位if(a==9) break; }return a; } #include<iostream> #include<string> #include<algorithm> using namespace std;typedef long long ll;ll Max(ll x){ll a=-1;while(x){a=max(a,x%10);x/=10;if(a==9) break;//剪枝}return a; }ll Min(ll x){ll a=11;while(x){a=min(a,x%10);x/=10;if(a==0) break;//剪枝}return a; }int main(){ll t,n,k;cin>>t;while(t--){cin>>n>>k;for(int i=1;i<k;i++){if(Min(n)==0) break;//剪枝n+=Max(n)*Min(n);}cout<<n<<endl;} }總結
以上是生活随笔為你收集整理的codeforce A - Sequence with Digits的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu1166敌兵布阵 树状数组裸题
- 下一篇: 黄金三个九和四个九有什么区别