CodeForces Round #278 (Div.2) (待续)
2014-11-23 00:47
387 查看
A
这么简单的题直接贴代码好了。
代码君
E(数论+构造)
题意:
给出一个正整数n,问是否存在一个 1~n的排列,使得前i个数的乘积模上n的余数得到的序列是0~n-1的一个排列。
分析:
当n为1、4和素数的时候有解,构造方法是用 (i+1)*(i的逆元)%n 填充当前的数。
这道题先留着,等我比较系统地学习数论以后在给出严格证明以及代码。
这么简单的题直接贴代码好了。
#include <cstdio> #include <algorithm> using namespace std; const int maxn = 100000 + 10; long long a[maxn], last = 0; bool flag = true; int main(void) { //freopen("Din.txt", "r", stdin); long long n, s, l, ans = 0; scanf("%I64d%I64d%I64d", &n, &s, &l); for(int i = 0; i < n; ++i) scanf("%I64d", &a[i]); long long pos, left, right; for(pos = 0; pos < n; ++pos) //从pos位置开始延伸 { long long maxm, minm, cnt = 1; //区间延伸过程中的最小值和最大值以及区间中元素的个数 maxm = a[pos], minm = a[pos]; right = pos + 1; while(right < n) { maxm = max(maxm, a[right]); minm = min(minm, a[right]); if(maxm - minm <= s) cnt++; else break; right++; } right--; //maxm = a[pos], minm = a[pos]; left = pos - 1; while(left >= last) { maxm = max(maxm, a[left]); minm = min(minm, a[left]); if(maxm - minm <= s) cnt++; else break; left--; } left++; if(cnt < l) { flag =false; break; } ans++; last = left + l; pos = right; } if(!flag) ans = -1; printf("%I64d\n", ans); return 0; }
代码君
E(数论+构造)
题意:
给出一个正整数n,问是否存在一个 1~n的排列,使得前i个数的乘积模上n的余数得到的序列是0~n-1的一个排列。
分析:
当n为1、4和素数的时候有解,构造方法是用 (i+1)*(i的逆元)%n 填充当前的数。
这道题先留着,等我比较系统地学习数论以后在给出严格证明以及代码。
相关文章推荐
- codeforces Round 256(Div.2)D.Multiplication Table(二分)
- Codeforces Round 389 Div.2 B. Santa Claus and Keyboard Check(模拟)
- Codeforces Round 190 div.2 322C 321A Ciel and Robot
- Codeforces Round #278 (Div. 2) B. Candy Boxes [brute force+constructive algorithms]
- 【Codeforces Round#279 Div.2】B. Queue
- Codeforces Round 261 Div.2 E Pashmak and Graph --DAG上的DP
- Codeforces Round #285 (Div.1 B & Div.2 D) Misha and Permutations Summation --二分+树状数组
- CodeForces Round #292 Div.2
- Codeforces Round #434 (Div.2) - C - Did you mean...
- codeforces Round #184 Div.2 - A. Strange Addition
- Codeforces Round 389 Div.2 B. Santa Claus and Keyboard Check(模拟)
- Codeforces Round 190 div.2 322C 321A Ciel and Robot
- Codeforces #Round 785(Div.2)
- CodeForces Round #294 Div.2
- Codeforces Round 389 Div.2 B. Santa Claus and Keyboard Check(模拟)
- codeforces Round #117 Div.2 182E. Wooden Fence
- codeforces Round#158 Div.2 A
- Codeforces Round #278 (Div. 2) A B
- Codeforces Round #266 (Div.2) B Wonder Room --枚举
- Codeforces Round #455 Div.2 909A