USACO2.2.3 Runaround Numbers (runround)
2015-01-28 17:52
148 查看
//这是一个小技巧,用此可直接得出数字x的位数 int k=log10(x)+1;
从n+1开始判断每个数字是否符合,符合即输出,程序结束。
/* ID:xsy97051 LANG:C++ TASK:runround */ #include <cstdio> #include <cstring> #include <cmath> #include <iostream> using namespace std; int n,q[10000],vis[20]; int bis[20]; int pan(long long x) { memset(vis,0,sizeof(vis)); memset(bis,0,sizeof(bis)); int k=log10(x)+1; int kk=1; while(x>0) { if(!(x%10)) return 0; q[k-kk]=x%10; kk++; x/=10; } for(int i=0;i<k;i++) vis[q[i]]++; for(int i=1;i<10;i++) if(vis[i]>1) return 0; int qian=0,hou=k; for(int i=0;i<k;i++) { int j=q[qian]; bis[j]++; if(bis[j]>1) return 0; qian=(qian+j)%k; } if(qian!=0) return 0; return 1; } int main() { freopen("runround.in","r",stdin); freopen("runround.out","w",stdout); cin>>n; for(int i=n+1;;i++) if(pan(i)) { cout<<i<<endl; return 0; } }
相关文章推荐
- USACO2.2.3 Runaround Numbers (runround)
- USACO 2.2.3 Runaround Numbers
- USACO:2.2.3 Runaround Numbers 循环数
- USACO 2.2.3 Runaround Numbers dfs
- USACO 2.2.3 Runaround Numbers 循环数
- USACO 2.2.3 Runaround Numbers(枚举+模拟)
- [USACO 2.2.3] Runaround Numbers
- Runaround Numbers_usaco2.2.3_预处理+二分
- USACO 2.2 Runaround Numbers (runround)
- USACO-Section 2.2 Runaround Numbers (枚举)
- USACO 2.2 Runaround Numbers
- 【USACO 2.2】Runaround Numbers
- 2.2.3 RUNAROUND NUMBERS 循环数
- USACO:Runaround Numbers
- usaco Runaround Numbers
- 【其他】【USACO】Runaround Numbers
- USACO-Runaround Numbers
- [USACO2.2]循环数 Runaround Numbers
- USACO-Section2.2 Runaround Numbers [其他][模拟]
- usaco training-Runaround Numbers