题意: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[二分+贪心]相关推荐

  1. bzoj4525[Usaco2016 Jan]Angry Cows

    bzoj4525[Usaco2016 Jan]Angry Cows 题意: 有N个草堆在数轴的不同位置,向坐标x处扔炸弹,[x−R,x+R]的草堆都会燃爆. K个炸弹,问如果要引爆所有的草堆最小的R. ...

  2. [Usaco2016 Jan]Angry Cows

    [Usaco2016 Jan]Angry Cows Description 奶牛Bessie设计了一个游戏:"愤怒的奶牛".游戏的原型是:有一些可爆炸的草堆分布在一条数轴的某些坐标 ...

  3. 蒟蒻的第一篇博客CF1041C Coffee Break(二分+贪心+set)

    CF1041C Coffee Break(二分+贪心+set) 描述 Recently Monocarp got a job. His working day lasts exactly mm min ...

  4. 洛谷P1182 数列分段 Section II(二分+贪心)

    题目描述 对于给定的一个长度为N的正整数数列 A1∼NA _{1∼N}A1∼N​,现要将其分成 M(M≤N)M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一 ...

  5. BZOJ 4509 USACO 2016 Jan Gold Angry Cows

    Bessie设计了一个游戏,将奶牛投掷到一个有多个草堆数轴上,奶牛的能量为R表示奶牛可以引爆半径R内的所有草堆,接着被引爆的这些草堆的能量为R-1,第二次被引爆的为R-2,以此类推,最后为0.问最小的 ...

  6. POJ 2456 Aggressive cows ( 二分 贪心 )

    题意 : 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1e9) ...

  7. poj 2456 Aggressive cows 【二分+最大化最小值】

    题目链接:http://poj.org/problem?id=2456 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 210 ...

  8. BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】

    题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其 ...

  9. hdu5248序列变换(二分+贪心)基础题

    题意(中文的直接粘题意吧)                                                                                        ...

最新文章

  1. linux内存管理 之 内存节点和内存分区(Zone)
  2. 自己写的程序发给别人老是会出现缺失各种库,而自己电脑运行却没毛病
  3. jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。
  4. python 抓取目录树_python 获取文件下所有文件或目录os.walk()的实例
  5. 2.CCGridAction(3D效果),3D反转特效,凸透镜特效,液体特效,3D翻页特效,水波纹特效,3D晃动的特效,扭曲旋转特效,波动特效,3D波动特效
  6. 高性能流媒体服务器EasyDSS前端重构(二) webpack + vue + AdminLTE 多页面提取共用文件, 优化编译时间...
  7. 【java】求两个字符串的最长公共子串
  8. layui table异步调用数据的时候,数据展示不出来现象解决方案
  9. 如何用1年时间获得3年成长?
  10. 商业智能BI有哪些数据价值
  11. NLP语义匹配 | 经典前沿方案整理
  12. shell基础之更改IP
  13. 均方根误差有没有单位_mse均方误差是否有单位
  14. webm视频怎么转换成mp4?
  15. 刘涛入职阿里,年薪超过欧阳娜娜!揭秘阿里巴巴的明星员工和职级薪资!
  16. php 协成wifi_2016最新协成wifi认证系统二次开发版源码 支持中文ssid 无加密无限制...
  17. 《计算机网络》——IEEE 802.11 无线局域网、无线局域网的分类、广域网、PPP协议、HDLC协议、链路层设备、冲突域和广播域
  18. nginx配置+redis使用以及同步
  19. 扫地机器人朋友圈文案_扫地机器人方案
  20. java考试真题6_JAVA认证考试历年真题:SCJP认证试题解析6

热门文章

  1. Redis数据库搭建集群(集群概念、redis集群、搭建集群(配置机器1、2、创建集群、数据操作验证)、Python与redis集群交互)
  2. 网络工程师_想要记录下来的一些题_5
  3. 审稿人眼中的好论文到底长什么样?
  4. 漂亮,LSTM模型结构的可视化
  5. 一篇适合新手的深度学习综述
  6. linux交换分区的优化-参数优化必选
  7. ERP实施完了,为什么还要做MES?
  8. Python 排序的姿势,你们,你们还要学习..学习一个
  9. shell 监控局域网的主机是否up(转)
  10. Response.Redirect 打开新窗体的两种方法