/*
奇数怎么搞呢
二分到答案怎么judge呢
贪心怎么贪呢
假设贪心方案是 前两个挨着取 后面的能靠前就靠前
这样子似乎保证了ans最min
但是不管贪的对不对 操作起来时间GG
而且 如果真的这样搞 二分出来的答案就没啥用了
如果按二分通常的套路来说 应该是拿二分出的ansi来贪心的溜一遍
看看合不合法 但是一般都有一个值来辅助判断合不合法
显然这个题需要我们自己构造
(emmmm说了一堆废话)
显然一路合法的跑过来就是看看n和1选的重不重合
我们让1选1~a[1] 那就是 最后看看n有没有选1~a[1]里的
这样就找到了最后judge的条件
现在考虑维护这个 "有没有选1~a[1]里" 设为A[i]
往简单了想 设成bool类型 GG 发现维护A[i] 的时候用到了具体的数值
我们改为 "1~a[1]选了多少个"
考虑转移
因为每个元素只与和他挨着的有关系 在跑的时候就只与左边一个有关系
所以两个一组 我们让奇数的尽量选大的 偶数尽量选小的 这样n就和1尽可能错开了
发现搞奇数需要 每个元素除了1-a[1]之外选了几个 记做B[i]
有 偶数:A[i]=min(a[1]-A[i-1],a[i]) B[i]=a[i]-A[i]
奇数:B[i]=min(ansi-a[1]-B[i-1],a[i]) A[i]=a[i]-B[i]
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#define maxn 100010
using namespace std;
int n;
long long A[maxn],B[maxn],a[maxn],l,r,ans;
int init(){
int x=,f=;char s=getchar();
while(s<''||s>''){if(s=='-')f=-;s=getchar();}
while(s>=''&&s<=''){x=x*+s-'';s=getchar();}
return x*f;
}
bool Judge(long long x){
A[]=a[];B[]=;
for(int i=;i<=n;i++)
if(i&){
B[i]=min(x-a[]-B[i-],a[i]);
A[i]=a[i]-B[i];
}
else {
A[i]=min(a[]-A[i-],a[i]);
B[i]=a[i]-A[i];
}
return A[n]==;
}
int main(){
while(){
scanf("%d",&n);
if(n==)break;
for(int i=;i<=n;i++)
a[i]=init();
if(n==){
printf("%lld\n",a[]);continue;
}
ans=-;a[n+]=a[];
for(int i=;i<=n;i++)
ans=max(ans,a[i]+a[i+]);
l=ans;r=(long long)<<;
if(n&){
while(l<=r){
long long mid=(l+r)/;
if(Judge(mid)){
r=mid-;ans=mid;
}
else l=mid+;
}
}
printf("%lld\n",ans);
}
return ;
}

Uva1335 二分+贪心的更多相关文章

  1. Codeforces Gym 100231B Intervals 线段树+二分+贪心

    Intervals 题目连接: http://codeforces.com/gym/100231/attachments Description 给你n个区间,告诉你每个区间内都有ci个数 然后你需要 ...

  2. 2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 二分+贪心

    /** 题目:2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 链接:http://codeforces.com/gym/101194 题意:给n个木块,堆 ...

  3. 【bzoj2097】[Usaco2010 Dec]Exercise 奶牛健美操 二分+贪心

    题目描述 Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的小路上奔跑.这些奶牛的路径集合可以被表示成一个点集和一些连接 两个顶点的双向路,使得每对点之间恰好有一条简单路径. ...

  4. Codeforces_732D_(二分贪心)

    D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  5. CF732D Exams 二分 贪心

    思路:二分+贪心 提交次数:10次以上 错因:刚开始以为二分(边界,$+1or-1$)写错了,调了半天,后来才发现是$ck()$写错了.开始只判了最后是否小于零,而应该中间一旦小于零就$return\ ...

  6. $CF949D\ Curfew$ 二分/贪心

    正解:二分/贪心 解题报告: 传送门$QwQ$ 首先这里是二分还是蛮显然的?考虑二分那个最大值,然后先保证一个老师是合法的再看另一个老师那里是否合法就成$QwQ$. 发现不太会搞这个合不合法的所以咕了 ...

  7. $bzoj2067\ szn$ 二分+贪心

    正解:二分+贪心 解题报告: 传送门$QwQ$ 题目大意就说有一棵树,然后要用若干条线覆盖所有边且不能重叠.问最少要用几条线,在用线最少的前提下最长的线最短是多长. 昂首先最少用多少条线这个还是蛮$e ...

  8. leetcode1552题解【二分+贪心】

    leetcode1552.两球之间的磁力 题目链接 算法 二分+贪心 时间复杂度O(nlogn + nlogm) 1.根据题意描述,我们需要将m个球放入到n个篮子中,根据题目中数据范围描述发现m &l ...

  9. Codeforces 732D [二分 ][贪心]

    /* 不要低头,不要放弃,不要气馁,不要慌张 题意: n天进行m科考试,每科考试需要a的复习时间,n天每天最多可以考一科.并且指定哪天考哪科. 注意考试那天不能复习. 问最少需要多少天可全部通过考试. ...

随机推荐

  1. BZOJ 3727 DP?推式子..

    思路: 设$sum[i]表示i的子树中a[i]的和$ $b[1]=\Sigma a[i]*dis[i] = \Sigma _{i=2} ^n sum[i]$ $b[x]-b[fa[x]]=sum[1] ...

  2. python2.X现在不能安装Django了:Collecting django Using cached Django-2.0.tar.gz

    使用pip安装django2: pip install django 报错: Collecting django  Using cached Django-2.0.tar.gz    Complete ...

  3. 使用GetInvocationList对委托链进行更多的控制

    委托链中所有项都会被调用,因为委托类型的 Invoke 方法包含了对数组中的所有项进行遍历的代码.这是一个很简单的算法.尽管这个简单的算法足以应付很多情形,但也有它的局限性.例如,除了最后一个返回值, ...

  4. 精确获取对象的类型:Object.prototype.toString()

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/toString

  5. Android开发笔记(12)——ListView & Adapter

    转载请注明:http://www.cnblogs.com/igoslly/p/6947225.html 下一章是关于ListFragment的内容,首先先介绍ListView的相关配置,理解ListF ...

  6. HTML基础知识总结(一)

    概述       HTML是将内容和内容显示形式结合在一起的语言,它对于内容显示形式的控制,主要是通过标签(元素)的属性,由于它对“内容显示形式”存在着很多的弊端,所以之后就出现了CSS,CSS就相当 ...

  7. 【sqli-labs】 less14 POST - Double Injection - Single quotes- String -twist (POST型单引号变形双注入)

    名字和less13一样? 看了下源码对比 less13 less14 less14应该是双引号吧 出错 构造永真登陆

  8. lvs直接路由模式DR模式

    1)实验所有关闭防火墙systemtcl stop firewalldsystemctl disable firewalldsetenforce 0iptables -F2)配置负载调度器配置虚拟IP ...

  9. 【JavaScript框架封装】自己动手封装一个涵盖JQuery基本功能的框架及核心源码分享(单文件版本)

    整个封装过程及阅读JQuery源码的过程基本上持续了一个月吧,最终实现了一个大概30%的JQuery功能的框架版本,但是里面涉及的知识点也是非常多的,总共的代码加上相关的注释大概在3000行左右吧,但 ...

  10. 阿里云服务器centos7环境下安装xampp后,mysql有进程,但是却没有监听3306端口

    配置阿里云服务器centos7中xampp环境时出现了一种情况: 在centos中可以使用命令进入mysql 修改后也可以远程用phpmyadmin连接mysql 但是用navicat却无法连接 先修 ...