[USACO16JAN]Angry Cows S[二分+贪心]
题意:Bessie 设计了一款新游戏:Angry Cows。在这个游戏中,玩家发射奶牛,每头奶牛落地时引爆一定范围内的干草。游戏的目标是使用一组奶牛引爆所有干草。
N 捆干草排列在数轴上的不同位置。第 i 捆干草的的位置为 x[i]。如果一个威力为 R 的奶牛在 x 位置落地,她将引爆 [x−R,x+R] 范围内的所有干草。
你现在可以发射 K 头奶牛,每头奶牛的威力都是 R,现在你需要确定 R 的最小值,使得用 K 头奶牛可以引爆所有干草。
题解:
这种最小值,一般来说就是二分答案了,重点还是在于二分答案中的check函数怎么写,这里的话,check函数中有一种贪心的思想在里面,即,从前往后遍历点,在能占到这个点的情况下,尽量把多余的范围往后延伸,因为前面的甘草已经被引爆了,所以把多余的范围尽量往后延伸,这样才会尽可能多的引爆后面的甘草。
代码:
/*Keep on going Never give up*/
#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>#define int long long
#define endl '\n'
#define Accepted 0
#define AK main()
#define I_can signed
using namespace std;
const int maxn =1e5+10;
const int MaxN = 0x3f3f3f3f;
const int MinN = 0xc0c0c00c;
typedef long long ll;
const int inf=0x3f3f3f3f;
const ll mod=1e9+7;
using namespace std;
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();return s*w;
}
int n,k;
int a[maxn];
//map<int> mp;bool check(int x){int steps=0,cnt=0;for(int i=0;i<n;i++){if(steps<a[i]){cnt++;steps=a[i]+x*2;}}return cnt<=k;}I_can AK{ios::sync_with_stdio(false);//freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];}sort(a,a+n);int ans=0,l=0,r=1e9+10;while(l<=r){int mid=(l+r)/2;if(check(mid)){ans=mid;r=mid-1;}else l=mid+1;//cout<<mid<<endl;}cout<<ans+1<<endl;return Accepted;
}
[USACO16JAN]Angry Cows S[二分+贪心]相关推荐
- bzoj4525[Usaco2016 Jan]Angry Cows
bzoj4525[Usaco2016 Jan]Angry Cows 题意: 有N个草堆在数轴的不同位置,向坐标x处扔炸弹,[x−R,x+R]的草堆都会燃爆. K个炸弹,问如果要引爆所有的草堆最小的R. ...
- [Usaco2016 Jan]Angry Cows
[Usaco2016 Jan]Angry Cows Description 奶牛Bessie设计了一个游戏:"愤怒的奶牛".游戏的原型是:有一些可爆炸的草堆分布在一条数轴的某些坐标 ...
- 蒟蒻的第一篇博客CF1041C Coffee Break(二分+贪心+set)
CF1041C Coffee Break(二分+贪心+set) 描述 Recently Monocarp got a job. His working day lasts exactly mm min ...
- 洛谷P1182 数列分段 Section II(二分+贪心)
题目描述 对于给定的一个长度为N的正整数数列 A1∼NA _{1∼N}A1∼N,现要将其分成 M(M≤N)M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一 ...
- BZOJ 4509 USACO 2016 Jan Gold Angry Cows
Bessie设计了一个游戏,将奶牛投掷到一个有多个草堆数轴上,奶牛的能量为R表示奶牛可以引爆半径R内的所有草堆,接着被引爆的这些草堆的能量为R-1,第二次被引爆的为R-2,以此类推,最后为0.问最小的 ...
- POJ 2456 Aggressive cows ( 二分 贪心 )
题意 : 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1e9) ...
- poj 2456 Aggressive cows 【二分+最大化最小值】
题目链接:http://poj.org/problem?id=2456 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 210 ...
- BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】
题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其 ...
- hdu5248序列变换(二分+贪心)基础题
题意(中文的直接粘题意吧) ...
最新文章
- linux内存管理 之 内存节点和内存分区(Zone)
- 自己写的程序发给别人老是会出现缺失各种库,而自己电脑运行却没毛病
- jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。
- python 抓取目录树_python 获取文件下所有文件或目录os.walk()的实例
- 2.CCGridAction(3D效果),3D反转特效,凸透镜特效,液体特效,3D翻页特效,水波纹特效,3D晃动的特效,扭曲旋转特效,波动特效,3D波动特效
- 高性能流媒体服务器EasyDSS前端重构(二) webpack + vue + AdminLTE 多页面提取共用文件, 优化编译时间...
- 【java】求两个字符串的最长公共子串
- layui table异步调用数据的时候,数据展示不出来现象解决方案
- 如何用1年时间获得3年成长?
- 商业智能BI有哪些数据价值
- NLP语义匹配 | 经典前沿方案整理
- shell基础之更改IP
- 均方根误差有没有单位_mse均方误差是否有单位
- webm视频怎么转换成mp4?
- 刘涛入职阿里,年薪超过欧阳娜娜!揭秘阿里巴巴的明星员工和职级薪资!
- php 协成wifi_2016最新协成wifi认证系统二次开发版源码 支持中文ssid 无加密无限制...
- 《计算机网络》——IEEE 802.11 无线局域网、无线局域网的分类、广域网、PPP协议、HDLC协议、链路层设备、冲突域和广播域
- nginx配置+redis使用以及同步
- 扫地机器人朋友圈文案_扫地机器人方案
- java考试真题6_JAVA认证考试历年真题:SCJP认证试题解析6