USACO-Runaround Numbers(枚举)
来源:互联网 发布:公司网络有限制 编辑:程序博客网 时间:2024/05/16 01:16
题目链接:Runaround Numbers
因为每个数都不相同,所以可以枚举出所有的数,复杂度是
排序后可以二分找答案。
/*ID: xdujlx1PROG: runroundLANG: C++*/#include<bits/stdc++.h>using namespace std;typedef long long ll;ll arr[100007];int a[11];bool vis[11];int k;void ioinit(){ freopen("runround.in","r",stdin); freopen("runround.out","w",stdout);}void check(int *a, int n){ int cnt=0; memset(vis,0,sizeof(vis)); int pos=0; while(!vis[pos]) { vis[pos]=true; cnt++; pos=(pos+a[pos])%n; } if(cnt==n&&pos==0) { ll res=0; for(int i=0;i<n;i++) { res*=10; res+=a[i]; } arr[k++]=res; }}bool used[11];void creat(int pos, int val){ if(!val) { check(a,pos); return; } else { a[pos]=val; check(a,pos+1); } for(int i=1;i<10;i++) if(!used[i]) used[i]=true,creat(pos+1,i),used[i]=false;}int main(){ ioinit(); for(int i=1;i<10;i++) used[i]=true,creat(0,i),used[i]=false; //for(int i=0;i<k;i++) cout << arr[i] << endl; sort(arr,arr+k); int n; scanf("%d",&n); int t=upper_bound(arr,arr+k,n)-arr; cout << arr[t] << endl; return 0;}
0 0
- USACO-Runaround Numbers(枚举)
- USACO-Section 2.2 Runaround Numbers (枚举)
- USACO - 2.2 Runaround Numbers(枚举)
- USACO 2.2.3 Runaround Numbers(枚举+模拟)
- USACO-Section2.2 Runaround Numbers【暴力枚举】
- 【其他】【USACO】Runaround Numbers
- usaco training-Runaround Numbers
- USACO / Runaround Numbers(穷举)
- USACO Runaround Numbers
- usaco Runaround Numbers
- [USACO]Runaround Numbers
- USACO:Runaround Numbers
- USACO-Runaround Numbers
- USACO Runaround Numbers
- USACO--2.2Runaround Numbers
- USACO 2.2 Runaround Numbers
- USACO 2.2 Runaround Numbers
- USACO-Runaround Numbers
- Android消息队列模型——Thread,Handler,Looper,Massage Queue
- word快速添加注释快捷键
- 【小练习】轮播图的封装
- iOS中强制app竖屏的解决办法
- leetcode-35. Search Insert Position
- USACO-Runaround Numbers(枚举)
- Nginx中的请求(nginx_http_request_t)
- 数组邻接表
- 订单可视化(智能制造、流程再造、企业信息化) 第七篇 经营班子掌舵,业务与开发分离,走向成功必备条件
- 代码编写过程中应该考虑的时序优化(笔记)
- Apache POI介绍
- 寻找递减最长路径
- 廖雪峰python教程阅读之python简介
- 201609 CCF 第二题 火车购票