La 3177
来源:互联网 发布:淘宝开店2张不同银行卡 编辑:程序博客网 时间:2024/06/14 10:38
#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>using namespace std;#define INF 0x7f7f7f7f#define MAXN (100000+5)int n;int r[MAXN];int r1[MAXN], r2[MAXN];bool check(int num_p){ int tot1 = r[1], tot2 = num_p - r[1]; if(tot2 <= 0) return false; r1[1] = tot1; r2[1] = 0; for(int i = 2; i <= n; i++){ if(i % 2){ r2[i] = min(tot2-r2[i-1], r[i]); r1[i] = r[i] - r2[i]; if(r1[i]+r1[i-1] > tot1) return false; }else{ r1[i] = min(tot1-r1[i-1], r[i]); r2[i] = r[i] - r1[i]; if(r2[i]+r2[i-1] > tot2) return false; } } return !r1[n];}int main(){ while(scanf("%d", &n) != EOF && n){ int L = 0, R = 0; for(int i = 1; i <= n; i++){ scanf("%d", &r[i]); if(i > 1) L = max(L, r[i-1]+r[i]); R = max(R, r[i]*3); } L = max(L, r[1]+r[n]); if(n == 1){ printf("%d\n", r[1]); continue; } if(n % 2){ while(L < R){ int mid = L + (R-L)/2; if(check(mid)) R = mid; else L = mid+1; } } printf("%d\n", L); } return 0;}
0 0
- La 3177
- LA 3177 Beijing Guards
- la la la, la la la
- LA 3177 Beijing Guards 二分 -
- LA 3177 长城守卫(推理+二分)
- LA 3177 UVA 1335 - Beijing Guards
- 二分(长城守卫,LA 3177)
- LA 3177 Beijing Guards (二分+贪心)
- 二分法-长城守卫(Beijing Guards, CERC 2004, LA 3177)
- LA 3942
- LA 4670
- LA 3135
- LA 3644
- LA 3027
- LA 5059
- LA 3644
- La 3942
- LA 3126
- hdu2389+二分匹配(Hopcroft-Karp算法)
- DevExprss的时间控件DateEdit取值时间转换方法
- JS读取本地文件及目录的方法
- ajax异步上传图片
- Golang开发工具与常用网站
- La 3177
- MVC中的@Html.DisplayFor等方法如何控制日期的显示格式(转)
- redis学习笔记之数据类型
- [IOS/翻译]GCD-2 Queuing Tasks for Dispatch
- Swing 刷新组件java swing中两大原则: 1. 不要阻塞UI线程 2. 不要在UI线程外的线程去操作UI控件
- Java学习之反射机制学习笔记--3
- UNIX网络编程:共享内存区
- 对近期学习计划以及目标的总结
- Win7配置CUDA并搭建基于Theano框架的GPU加速环境