http://acm.buaa.edu.cn/problem/1389/

愤怒的DZY
【问题描述】
“愤怒的小鸟”如今已经是家喻户晓的游戏了,机智的WJC最近发明了一个类似的新游戏:“愤怒的DZY”。游戏是这样的:玩家有K个DZY,和N个位于不同的整数位置:X1,X2,…,XN的干草包。每一个DZY都可以站在某个位置:X 扔炸弹,扔完炸弹,这个DZY就会挂掉。扔炸弹的半径为R(且每次每个DZY扔炸弹的半径不变,都是R,而站的位置X可以改变),破坏范围为的X−R~X+R(即位置在X-R到X+R(含X-R,X+R)都会被炸掉)。现在给定DZY的个数K,和干草堆的位置:X1,X2,…,XN,问你最小的可以炸掉所有干草堆的半径R。
【输入说明】
第一行两个正整数N,K。接下来N行,每行一个数,依次是:X1,X2,…,XN。
【输出说明】
仅一行,代表最小的可以炸掉所有干草堆的半径R。
【样例输入】
7 2
20
25
18
8
10
3
1
【样例输出】
5
命题人:Hacker_WJC

学习了上题的最大值最小化,这题就很好解决了,数据n卡到10e6

对位置进行从小到大排序,枚举直径,不妨设最小直径为1,最大就是前后两点距离 a[n] - a[1],然后从a[1]开始枚举直径为mid是否可以,如果比a[i] + mid小就取下一个,否则cnt++,以该点为起点在判断

半径采用进一法输出,

 #include <cstdio>
#include <algorithm>
#include <cstring>
#include <iostream>
using namespace std;
const int MAX = + ;
int a[MAX];
int n,k,maxn,minn;
void input()
{
minn = maxn = ;
scanf("%d%d", &n, &k);
for(int i = ; i <= n; i++)
{
scanf("%d", &a[i]);
}
sort(a + , a + n + );
minn = ;
maxn = a[n] - a[];
}
bool is_ok(int mid)
{
bool ok = true;
int start = ,End = ;
int cnt = ;
while(End <= n)
{
if(a[End] - a[start] <= mid)
{
End++;
}
else
{
cnt++;
if(cnt > k)
{
ok = false;
break;
}
start = End;
}
}
return ok;
}
int solve()
{
int x = minn, y = maxn; while(x <= y)
{
int mid = (x + y) / ;
if(is_ok(mid))
y = mid - ;
else
x = mid + ;
}
return x;
}
int main()
{
input();
int ans = solve();
if(ans % == )
printf("%d\n", ans / );
else
printf("%d\n", ans / + );
}

BUAA1389愤怒的DZY(最大值最小化)的更多相关文章

  1. 九度OJ 1502 最大值最小化(JAVA)

    题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...

  2. UVA 714 Copying Books 最大值最小化问题 (贪心 + 二分)

      Copying Books  Before the invention of book-printing, it was very hard to make a copy of a book. A ...

  3. hdu 4004 最大值最小化

    http://acm.hdu.edu.cn/showproblem.php?pid=4004 一条线段长度为L,线段上有n个点,最多选取 m-1 个点,使得包括线段端点在内的相邻点之间的最大距离值最小 ...

  4. Crowd Control(输出不在最大值最小化的最短路上的边)

    题意: 就是求完最大值最小化  然后输出在这条最大值最小化的最短路上的点的不在最短路上的边,emm.... 解析: 很明显,先套spfa最大值最小化模板,emm... 在更新d的时候 用一个pre去记 ...

  5. UVa 714 Copying books 贪心+二分 最大值最小化

    题目大意: 要抄N本书,编号为1,2,3...N, 每本书有1<=x<=10000000页, 把这些书分配给K个抄写员,要求分配给某个抄写员的那些书的编号必须是连续的.每个抄写员的速度是相 ...

  6. Monthly Expense(最大值最小化问题)

                                                                                POJ-3273                 ...

  7. uva 714 Copying Books(二分法求最大值最小化)

    题目连接:714 - Copying Books 题目大意:将一个个数为n的序列分割成m份,要求这m份中的每份中值(该份中的元素和)最大值最小, 输出切割方式,有多种情况输出使得越前面越小的情况. 解 ...

  8. uva 714 - Copying Books(贪心 最大值最小化 二分)

    题目描写叙述开头一大堆屁话,我还细致看了半天..事实上就最后2句管用.意思就是给出n本书然后要分成k份,每份总页数的最大值要最小.问你分配方案,假设最小值同样情况下有多种分配方案,输出前面份数小的,就 ...

  9. Jamie's Contact Groups POJ - 2289(多重匹配 最大值最小化 最大流)

    Jamie's Contact Groups Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 8567   Accepted: ...

随机推荐

  1. JS 浮点数运算丢失精度解决方案

    除法 function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{t1=arg1.toString().split(".")[1].l ...

  2. *.location.href 用法:

    *.location.href 用法: top.location.href=”url”          在顶层页面打开url(跳出框架) self.location.href=”url”       ...

  3. mac 无法连接android手机进行调试 解决方案

    第一步: 查看usb设备信息 在 终端输入:system_profiler SPUSBDataType     可以查看连接的usb设备的信息 比如我的usb信息如下(部分内容): Android: ...

  4. TeeChart控件的安装与常用 功能设置

    TeeChart控件的安装 TeeChart 7.0 With Source在Delphi 7.0中的安装 一.删除Delphi7自带TeeChart  1.Component -> insta ...

  5. 装系统提示缺少所需的CD/DVD驱动器设备驱动程序

    昨晚用ultraISO和win7 旗舰版(ultimate)的镜像做了个启动U盘,插在自己新电脑上安装过程中提示“缺少所需的CD/DVD驱动器设备驱动程序”,用网上的很多办法都不行,最后找官网的客服问 ...

  6. connect函数详解

    不得不说,客户端的connect函数和服务端的accept函数是一对好基友,如果客户端没有去connect, 那么服务端的accept会一直在那里傻傻地痴痴地等待,我们先来看看connect函数的原型 ...

  7. Android Fragment 完全解析

    参考文章:http://blog.csdn.net/guolin_blog/article/details/8881711 http://blog.csdn.net/guolin_blog/artic ...

  8. Android -- Scroller

    Android里Scroller类是为了实现View平滑滚动的一个Helper类.通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(conte ...

  9. 实验三实验报告 20135324&&20135330

    北京电子科技学院(BESTI) 实验报告 课程:深入理解计算机系统 班级:1353 姓名:张若嘉 杨舒雯 学号:20135330 20135324 成绩: 指导教师:娄嘉鹏 实验日期:2015.11. ...

  10. Git.Framework 框架随手记--ORM查询数据集合 二

    一.  分组查询 在SQL中使用Group By 来对数据分组,在实际中分组中一般与聚合函数一并使用.在Git.Framework中提供了相应的分组方法 DataTable Group(T entit ...