Pair of Numbers CodeForces
来源:互联网 发布:淘宝网主要栏目 编辑:程序博客网 时间:2024/05/21 06:37
又是暴力,自己又不会,而且别人的更加巧妙了
Codeforces Round #209 (Div. 2) D:http://codeforces.com/contest/359/problem/D
题意:给以一个n个数的序列,然后问你最大的区间l,r,在这个区间里面,存在一个数是这个区间所有数的约数,如果这个区间有多个,统计有多少个以及每个区间的左端点。
- int a[300005], w[300005]; //感觉别人好清晰的思路啊
- int main()
- {
- int n, i, l, r, cnt = 0, maxd = 0;
- scanf("%d", &n);
- for (i = 0; i < n; i++) scanf("%d", &a[i]);
- for (i = 0; i < n;)
- {
- l = r = i;
- while (l && a[l - 1] % a[i] == 0) l--; ///左移
- while (r < n - 1 && a[r + 1] % a[i] == 0) r++; ///右移
- i = r + 1; /// 关键一步,保证算法是O(n)的,这样做是利用“连续性”及这些数已经能被a[i]整除
- r -= l; ///现在r相当于r-l
- if (r > maxd) cnt = 0, maxd = r;
- if (r == maxd) w[cnt++] = l + 1;
- }
- printf("%d %d\n", cnt, maxd);
- for (i = 0; i < cnt; ++i) printf("%d ", w[i]); ///多打一个空格没问题
- return 0;
- }
0 0
- Pair of Numbers CodeForces
- Codeforces 359D - Pair of Numbers
- Codeforces 209 div2 D. Pair of Numbers
- Codeforces Round #209 (Div. 2) D. Pair of Numbers
- Codeforces Round #209 (Div. 2) D. Pair of Numbers
- Codeforces Round #209 (Div. 2), problem: (D) Pair of Numbers
- Codeforces Round #209 (Div. 2) D. Pair of Numbers
- 数学 之 Codeforces 359D - Pair of Numbers
- D. Pair of Numbers Codeforces Round #209 (Div. 2)
- Codeforces Round #209 (Div. 2) D - Pair of Numbers
- Codeforces Round #209 (Div. 2) D.Pair of Numbers
- CodeForces 359 D.Pair of Numbers (二分+ST)
- Codeforces Round #209 (Div. 2)-C. Prime Number(set)和D. Pair of Numbers(线段树)
- Codeforces Round #209 (Div. 2) / 359D Pair of Numbers (一点点想法)
- Codeforces 359D Pair of Numbers【思维+二分+区间Gcd+区间最小值RMQ】
- CF359D Pair of Numbers [RMQ+ST算法]
- Codefoces 359 D Pair of Numbers
- CF359D:Pair of Numbers(数论)
- FileStream的读取和写入
- 触发器
- PAT B1012. 数字分类 (20)
- POJ 3616 Milking Time
- 关于一些问题通过找寻资料的回答
- Pair of Numbers CodeForces
- umask( )函数、setsid( )函数
- 2n皇后问题
- CODEVS 1154 能量项链
- [BZOJ1014]火星人prefix
- PopUpWindow使用详解(二)——进阶及答疑
- 如何使用Actor模型解决高并发事务呢?
- HDU 1016
- 中位数附近的2k+1个数