usaco Runaround Numbers

来源:互联网 发布:android网络框架 编辑:程序博客网 时间:2024/05/16 08:05

这题日了狗了,我以为是dp或者是找规律,我总觉得遍历会爆最后实在想不到只好百度了结果看了一

/*ID:jinbo wuTASK:runroundLANG:C++*/#include<bits/stdc++.h>using namespace std;typedef long long ll;int a[20];bool v[10];bool judge(ll m){memset(v,0,sizeof(v));ll temp=m;int l=1;while(temp){a[l++]=temp%10;if(v[a[l-1]]||a[l-1]==0)return false;v[a[l-1]]=1;temp/=10;}int k=1;for(int i=l-1;i>=1;i--){if(k==0)k=l-1;v[a[k]]=0;    k=(k+a[l-k])%(l-1); }int flag=1;    for(int i=1;i<l;i++)if(v[a[i]]){    flag=0;    break;    }    if(k==1&&flag)    return true;    return false;    }int main(){  freopen("runround.in","r",stdin);  freopen("runround.out","w",stdout); ll n,ans; scanf("%lld",&n); for(ll i=n+1;;i++) { if(judge(i)) {  ans=i;   break;    } } printf("%lld\n",ans);}

下说是模拟,那这题就不难了。直接模拟就好了


0 0
原创粉丝点击