Wannafly模拟赛3 反蝴蝶效应
2017-10-10 10:09
351 查看
题目链接:点击打开链接
思路:水题,答案为max{ ai + i },i从0开始,时间复杂度O(n)。
此题的另一个思路为二分,答案上界为max{ ai } + n,每次二分后模拟验证,时间复杂度O(nlog(m + n))。
思路:水题,答案为max{ ai + i },i从0开始,时间复杂度O(n)。
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; int main(){ int n, t, re; while (scanf("%d", &n) != EOF) { re = -1; for (int i = 0; i < n; i++) { scanf("%d", &t); re = max(re, t + i); } printf("%d\n", re); } return 0; }
此题的另一个思路为二分,答案上界为max{ ai } + n,每次二分后模拟验证,时间复杂度O(nlog(m + n))。
// 反蝴蝶效应2 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; int n,a[100005]; bool judge(int sum) { for (int i = 0; i < n; i++,sum--) { if (sum < a[i]) { return false; } } return true; } int main(){ int m; int left, right; while (scanf("%d", &n) != EOF) { m = -1; for (int i = 0; i < n; i++) { scanf("%d", &a[i]); m = max(m, a[i]); } left = 1, right = m + n; while (left <= right) { int middle = (left + right) / 2; if (judge(middle)) { right = middle - 1; } else { left = middle + 1; } } printf("%d\n", left); } return 0; }
相关文章推荐
- 蝴蝶效应,鳄鱼法则,罗森塔尔效应,帕金森定律,手表定律,破窗理论,晕轮效应 ,霍桑效应,二八定律,木桶理论,马太效应,踢猫效应…………
- 蝴蝶效应与青蛙现象
- Wannafly模拟赛3 绝对半径2051(尺取)
- Wannafly模拟赛4 B.Distance 最大曼哈顿距离
- Wannafly模拟赛4 B题
- 蝴蝶效应
- 让幽默态度在工作上发挥蝴蝶效应
- 《青瓷》和现实:蝴蝶效应
- 由奶粉引起的蝴蝶效应(dambolo)
- 蝴蝶效应:网络热门事件形成的经过
- 气场——改变全球1600万人命运的强大蝴蝶效应
- 牛客网 Wannafly模拟赛2 树 dp+思维
- Wannafly模拟赛2 C alliances(dfs序+二分)
- Wannafly模拟赛2-Contest(CDQ分治)
- Wannafly模拟赛3 E 绝对半径2051【尺取】(可做模板)
- Wannafly模拟赛4 B.Distance 最大曼哈顿距离
- Java-蝴蝶效应
- 细节决定成败 ASP.NET中的蝴蝶效应
- 蝴蝶效应,青蛙现象,鳄鱼法则,鲇鱼效应,羊群效应,刺猬法则,手表定律,破窗理论,二八定律,木桶理论,马太效应,这些你都明白吗
- 职场管理中的蝴蝶效应-离职的蝴蝶效应,修改版