hdu 5248(二分)
来源:互联网 发布:天猫超市销售数据 编辑:程序博客网 时间:2024/06/05 14:40
题解:二分出最小代价x,然后倒着让每个数字都在x的变化范围内单调递减,如果无法实现就return false,左边界为x + 1,否则右边界是x。
#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int N = 100005;long long n, a[N];bool judge(long long x) { int temp = a[n - 1] + x; for (int i = n - 2; i >= 0; i--) { if (abs(temp - 1 - a[i]) <= x) temp = temp - 1; else if (temp - 1 >= a[i]) temp = a[i] + x; else return false; } return true;}int main() { int t, cas = 1; scanf("%d", &t); while (t--) { scanf("%lld", &n); long long l = 0, r = 1000000; for (int i = 0; i < n; i++) scanf("%lld", &a[i]); while (l < r) { long long mid = (l + r) / 2; if (judge(mid)) r = mid; else l = mid + 1; } printf("Case #%d:\n%lld\n", cas++, l); } return 0;}
0 0
- hdu 5248(二分)
- hdu 5248(二分+贪心)
- hdu 5248 序列变换【二分】
- hdu-5248(贪心+二分)
- HDU 5248 序列变换 —— 二分
- 【HDU】5248-序列变换(贪心+二分)
- HDU - 5248 序列变换 (二分&技巧)
- Hdu 5248 序列变换【二分+贪心】
- hdu 5248 序列变换(二分+贪心)
- HDU 5248 序列变换(二分)
- hdu pie(二分+贪心)
- HDU 2899 求导+二分
- 【二分】hdu 4004
- 【二分】hdu 4022
- 【二分】hdu 4033
- hdu 2899 二分
- HDU 2141 二分
- hdu 4004 二分 过河
- 取得键盘每个按键的keyCode的值
- JAVA 动态代理与AOP编程(面向切面编程)
- 关于detours的用法
- 浏览器原理与内存泄漏
- Arduuino复合运算符+Arduino基础~~~
- hdu 5248(二分)
- 读浅墨博客 十四 笔记
- 06-图1. List Components (25) (邻接表实现)
- mysql注意事项
- JS 屏蔽键盘与鼠标事件
- TCP连接状态详解
- virtualenv&webiopi 实践
- springmvc笔记
- 设计模式学习之策略模式:报价管理系统