[Usaco2016 Jan]Angry Cows

Description

奶牛Bessie设计了一个游戏:“愤怒的奶牛”。游戏的原型是:有一些可爆炸的草堆分布在一条数轴的某些坐标上
,玩家用弹弓把一头奶牛发射到数轴上。奶牛砸到数轴上的冲击波会引发附近的草堆爆炸。游戏的目标是玩家用一些奶牛炸掉所有的草堆。有N个草堆在数轴的不同位置,坐标为x1,x2,….,xn。如果玩家以能量R把奶牛发射到坐标x,就会引爆半径R及以内的的草堆,即坐标范围[x-R,x+R]的草堆都会燃爆。现在有K头奶牛,每头奶牛的能量都是
R,请计算如果要引爆所有的草堆,最小的R是多少?

Input

第一行:2个整数N(1≤N≤50,000)和K(1≤K≤10)。 
下面有N行,每行一个整数:x1,x2,…,xn,范围在[0…1,000,000,000]。

Output

输出最小可能的R。

Sample Input

7 2
20
25
18
8
10
3
1

Sample Output

5

思路

二分

二分答案R,按升序循环坐标,若该坐标大于t,则需要一头新的奶牛,为了使引爆的炸弹尽量多,所以使现在所在的点为最左边的点d[i],中间的引爆点为d[i]+mid+1,最右边的点为d[i]+mid+1+mid,即t=d[i]+mid+1+mid;否则就说明该坐标上的炸弹已经被引爆了。每次所用的奶牛数若大于限定的奶牛数,则check失败;反之check成功。最后ans取min。

代码

#include<bits/stdc++.h>
using namespace std;
int n,cow,d[50001],a1=1,a2,mid,used,t,ans=2147483647;
bool check()
{used=0;//使用的奶牛 t=0;//坐标为1—t内的所有坐标的炸弹已经引爆了 for(int i=1;i<=n;i++)if(t<=d[i])//该坐标的炸弹未被引爆 {used++;//使用的奶牛数量+1 if(used>cow)//使用的奶牛数超过限制,则check失败 return false; t=d[i]+mid+mid+1;//奶牛引爆d[i]——d[i]+mid+1——d[i]+mid+1+mid }return true;//check成功
}
int main()
{scanf("%d %d",&n,&cow);for(int i=1;i<=n;i++)scanf("%d",&d[i]);sort(d+1,d+1+n);//升序排列     a2=d[n]-d[1]+1;while(a1<=a2){mid=(a1+a2)/2;if(check())//check成功 {ans=min(ans,mid); a2=mid-1; } else//check失败 a1=mid+1;}printf("%d",ans);//输出答案 return 0;
}

[Usaco2016 Jan]Angry Cows相关推荐

  1. bzoj4525[Usaco2016 Jan]Angry Cows

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

  2. BZOJ 4509 USACO 2016 Jan Gold Angry Cows

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

  3. [USACO16JAN]Angry Cows S[二分+贪心]

    题意:Bessie 设计了一款新游戏:Angry Cows.在这个游戏中,玩家发射奶牛,每头奶牛落地时引爆一定范围内的干草.游戏的目标是使用一组奶牛引爆所有干草. N 捆干草排列在数轴上的不同位置.第 ...

  4. 语法入门*算法入门题单

    作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...

  5. 【新手上路】语法入门算法入门题单

    作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...

  6. 牛客算法課 (算法入門班) 二分, 三分, 01分數規劃

    目录 NC19916[CQOI2010] 撲克牌 NC116564 [NOIP2012]借教室 K-th Number 三分思路 圆覆盖问题 传送带 01分数规划 小咪买东西 [USACO 2009 ...

  7. 江苏大学2021年第一届程序设计大赛(UJSCPC)题面

    目录 A. 校门外的树 问题描述 输入形式 输出形式 样例输入 样例输出 B. 合格的素数 问题描述 输入形式 输出形式 样例输入 样例输出 C. 高精度乘法 问题描述 输入形式 输出形式 样例输入 ...

  8. Jan 13 - Bulls and Cows; String; HashSet;

    直接用hashmap做的: 代码: public class Solution {public String getHint(String secret, String guess) {if(secr ...

  9. BZOJ1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏

    此题非常一眼 就是直接分别将 x,y 坐标离散化 并在离散化之后做二维前缀和 二分一下答案,O(n^2) 的 check 即可 注意在 check 当中的二分 x - mid 的过程中,需要去二分 x ...

最新文章

  1. centos得mysql安装教程_Centos下Mysql安装图文教程_MySQL
  2. oracle awr windows,windows下的oracle 如何生成awr报告
  3. php+循环定时任务,php定时任务循环执行replace操作无故中断
  4. ui边框设计图_UI设计形状和对象基础知识:填充和边框
  5. 使用shiro框架,注销问题的解决
  6. 用递归形成树结构数据
  7. 1-5 线性表元素的区间删除 (20 分)
  8. win10去除快捷小箭头_win10操作系统小技巧之键盘快捷键使用
  9. 继续教育自动听课软件_荣耀小口哨app下载-华为荣耀小口哨软件v1.9.9 安卓最新版 - 极光下载站...
  10. 95-150-544-源码-Sink-Flink BucketingSink 源码分析
  11. PKI世界中两个知名的情侣 Alice和Bob
  12. 【转】《风雨哈佛路》观后感
  13. [导入]DotNetNuke 模組偵錯(DNN module debug)
  14. .xls和.xlsx 有什么区别?
  15. 迁移到MySQL的语法转换工具初步设计
  16. Ubuntu20.04Server双网卡问题
  17. Prolog编程求解图搜索问题
  18. 正则表达式经典教程-转
  19. NSNumber Compare的崩溃
  20. 敏友的【敏捷个人】有感(4): 发表下个人感言,指导自己的人生

热门文章

  1. 麦克风监听是否真的存在?有位小哥做了个实验...
  2. 【工具】国内苹果市场已上架 新一代社交产品 damus
  3. 玩转数据结构(十三)构建BST
  4. 手机触屏触摸特效javascript-TouchSwipe(依赖于jquery库)中文说明
  5. vlunhub-DC1|CSDN创作打卡
  6. 通过操作swap文件来扩大或缩小swap空间
  7. 常用lr_scheduler总结
  8. http 服务器搭建
  9. 什么是孩子正确的学习方法,有效的努力?
  10. 【备战校招】阅文集团Java实习生笔试题