UVA-1335(UVALive-3177) Beijing Guards 贪心 二分
题意:有n个人为成一个圈,其中第i个人想要r[i]种不同的礼物,相邻的两个人可以聊天,炫耀自己的礼物。如果两个相邻的人拥有同一种礼物,则双方都会很不高兴,问最少需要多少种不同的礼物才能满足所有人的需求,假设每种礼物有无限多个。 n<=100000
题解:
对于n==1 直接输出a[1]
对于n是偶数,找相邻两个和的最大值
对于n是奇数,现在假设有m个奖品,1号放1---a[1],2号开始的偶数号都尽量放小的
奇数都尽量放大的,尽量的意思就是避开前一个的范围就好。
于是我们二分m这个值就好
#include<bits/stdc++.h>
#define N 100005
using namespace std;
int n,a[N],rr[N],ll[N],st,ed;
int ans,l,r;
int main()
{
while (scanf("%d",&n)!=EOF && n!=)
{
memset(a, , sizeof(a));
int why=;
for (int i=;i<=n;i++)
{
scanf("%d",&a[i]);
why=max(why,a[i]*);
}
if (n==)
{
printf("%d\n",a[]);
continue;
}else
if (n%==)
{
ans=a[]+a[n];
for (int i=;i<=n;i++)
ans=max(ans,a[i]+a[i-]);
printf("%d\n",ans);
}else
{
r=why+;
l=a[]+a[n];
for (int i=;i<=n;i++)
l=max(l,a[i]+a[i-]);
while (l<r)
{
int mid=(l+r)/;
st=a[];
ed=mid-a[];
ll[]=st;
rr[]=;
for (int i=;i<=n;i++)
{
if (i%==)
{
rr[i]=min(ed-rr[i-],a[i]);
ll[i]=a[i]-rr[i];
}else
{
ll[i]=min(st-ll[i-],a[i]);
rr[i]=a[i]-ll[i];
}
}
if (ll[n]==) r=mid;else l=mid+;
}
printf("%d\n",l);
}
}
return ;
}
UVA-1335(UVALive-3177) Beijing Guards 贪心 二分的更多相关文章
- UVALive 3177 Beijing Guards
题目大意:给定一个环,每个人要得到Needi种物品,相邻的人之间不能得到相同的,问至少需要几种. 首先把n=1特判掉. 然后在n为偶数的时候,答案就是max(Needi+Needi+1)(包括(1,n ...
- Uva LA 3177 - Beijing Guards 贪心,特例分析,判断器+二分,记录区间内状态数目来染色 难度: 3
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...
- LA 3177 Beijing Guards(二分法 贪心)
Beijing Guards Beijing was once surrounded by four rings of city walls: the Forbidden City Wall, the ...
- UVA 1335 Beijing Guards(二分答案)
入口: https://cn.vjudge.net/problem/UVA-1335 [题意] 有n个人为成一个圈,其中第i个人想要r[i]种不同的礼物,相邻的两个人可以聊天,炫耀自己的礼物.如果两个 ...
- uva 1335 - Beijing Guards(二分)
题目链接:uva 1335 - Beijing Guards 题目大意:有n个人为成一个圈,其中第i个人想要r[i]种不同的礼物,相邻的两个人可以聊天,炫耀自己的礼物.如果两个相邻的人拥有同一种礼物, ...
- UVALive 2949 Elevator Stopping Plan(二分 + 贪心)
ZSoft Corp. is a software company in GaoKe Hall. And the workers in the hall are very hard-working. ...
- LA3177 Beijing Guards
Beijing Guards Beijing was once surrounded by four rings of city walls: the Forbidden City Wall, the ...
- 题解 UVA1335 【Beijing Guards】
UVA1335 Beijing Guards 双倍经验:P4409 [ZJOI2006]皇帝的烦恼 如果只是一条链,第一个护卫不与最后一个护卫相邻,那么直接贪心,找出最大的相邻数的和. 当变成环,贪心 ...
- poj 2782 Bin Packing (贪心+二分)
F - 贪心+ 二分 Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Description ...
随机推荐
- Windows下使用Caffe-Resnet
参考文章: 编译历程参考:CNN:Windows下编译使用Caffe和Caffe2 caffe的VS版本源代码直接保留了sample里面的shell命令,当然这些shell命令在Windows平台下是 ...
- 三维重建:SLAM的粒度和工程化问题
百度百科的定义.此文引用了其他博客的一些图像,如有侵权,邮件联系删除. 申明一下,SLAM不是一个算法,而是一个工程. 在计算机视觉中, 三维重建是指根据单视图或者多视图的图像重建三维信息的过程. 由 ...
- php xss 函数
function xss($string) { if (is_array($string)||is_object($string)||is_resource($string)) { return '' ...
- 【剑指Offer】32、把数组排成最小的数
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. ...
- mapbox 支持国家2000 坐标系的数据
最近有个项目使用mapbox作为地图展示,但是mapbox 只支持web 墨卡托(3857)坐标系的数据.而客户想接入其他单位发布的共享数据,共享数据都是基于arcgisserver 发布的国家200 ...
- vue 项目部署到nginx
第一步在控制台终端输入npm run build 打包完成之后项目中会生成一个dist文件夹,直接访问里面的index.html就ok了 第二步配置nginx 第三步重启nginx service n ...
- javascript实现:在N个字符串中找出最长的公子串
'use strict' module.exports = function 找出最长公子串 (...strings) { let setsOfSubstrings = [] strings.redu ...
- Emacs学习笔记之主模式笔记
% 模式相关—————————————————————————— 这里经常用的也就各种语言相对应的模式,有些就没再写进去,比如f90等模式 Fundamental mode 基本模式 ...
- windows系统通过命令行查看配件的详细信息
今天我在工作中遇到这样一个问题:客户服务器用的是win 2012系统,不打开机箱,不借助其他类似于鲁大师软件的情况下查看内存条的详细信息 刚开始的时候我通过systeminfo命令,只能查出来总的内存 ...
- Golang - 处理json
目录 Golang - 处理json 1. 编码json 2. 解码json Golang - 处理json 1. 编码json 使用json.Marshal()函数可以对一组数据进行JSON格式的编 ...