构造 Codeforces Round #310 (Div. 2) B. Case of Fake Numbers
2015-06-29 16:56
316 查看
题目传送门
/* 题意:n个数字转盘,刚开始每个转盘指向一个数字(0~n-1,逆时针排序),然后每一次转动,奇数的+1,偶数的-1,问多少次使第i个数字转盘指向i-1 构造:先求出使第1个指向0要多少步,按照这个次数之后的能否满足要求 题目读的好累:( */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <cmath> using namespace std; const int MAXN = 1e3 + 10; const int INF = 0x3f3f3f3f; int a[MAXN]; int main(void) //Codeforces Round #310 (Div. 2) B. Case of Fake Numbers { // freopen ("B.in", "r", stdin); int n; while (scanf ("%d", &n) == 1) { for (int i=1; i<=n; ++i) scanf ("%d", &a[i]); int cnt = 0; if (a[1] != 0) { cnt = (n - 1) - a[1] + 1; } bool flag = true; for (int i=2; i<=n; ++i) { if (i & 1) { for (int j=1; j<=cnt; ++j) { a[i]++; if (a[i] == n) a[i] = 0; } if (a[i] != i - 1) {flag = false; break;} } else { for (int j=1; j<=cnt; ++j) { a[i]--; if (a[i] == -1) a[i] = n - 1; } if (a[i] != i - 1) {flag = false; break;} } } (flag) ? puts ("Yes") : puts ("No"); } return 0; }
相关文章推荐
- Interview Q&A - Java中sleep()和wait()有什么区别
- JAVA之关于This的用法
- [转]剑指offer面试题总结
- NDK 10分钟入门教程
- MySQL表空间的碎片整理
- poj 2777
- hdu 3394 railway 点连通分量判环
- C#高级编程三十二天----数组基础
- GDAL 生成shp文件
- Android Studio生成apk
- MAC系统IntelliJ Idea 14 常用快捷键汇总
- 剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣
- mAdapter.notifyDataSetChanged()无法更新UI
- 13. Roman to Integer
- SQL SERVER提供了大量的WINDOWS和SQLSERVER专用的排序规则
- Jpush推送出现Please refer to JPush docs
- Low Power之CPF/UPF
- 高斯判别分析
- 好久没更新了
- OAuth 2.0系列教程(四) 客户端类型