Airport

Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1534    Accepted Submission(s): 486

Problem Description
The country of jiuye composed by N cites. Each city can be viewed as a point in a two- dimensional plane with integer coordinates (x,y). The distance between city i and city j is defined by dij = |xi - xj| + |yi - yj|. jiuye want to setup airport in K cities among N cities. So he need your help to choose these K cities, to minimize the maximum distance to the nearest airport of each city. That is , if we define di(1 ≤ i ≤ N ) as the distance from city i to the nearest city with airport. Your aim is to minimize the value max{di|1 ≤ i ≤ N }. You just output the minimum.
 
Input
The first line of the input is T (1 ≤ T ≤ 100), which stands for the number of test cases you need to solve.

The first line of each case contains two integers N ,K (1 ≤ N ≤ 60,1 ≤ K ≤ N ),as mentioned above.

The next N lines, each lines contains two integer xi and yi (-109 ≤ xi, yi ≤ 109), denote the coordinates of city i.

 
Output
For each test case, print a line “Case #t: ”(without quotes, t means the index of the test case) at the beginning. Then a single integer means the minimum.
 
Sample Input
2
3 2
0 0
4 0
5 1
4 2
0 3
1 0
3 0
8 9
 
Sample Output
Case #1: 2
Case #2: 4
 

题意:就是给你一系列点,让你挑k个点建造飞机场,然后求剩下点到最近的飞机场的最小的最大距离;距离定义:dij = |xi - xj| + |yi - yj|

我的思路是分别找出每个点到剩下点的距离,然后sort排序,找出每个城市第k大值的最小值;

大婶们说这是DLX可重复覆盖:

下面是大神的说法:

HDU 2295 Radar(DLX可重复覆盖)差不多,我们的做法就是

保存n个城市之间的距离,sort一下,二分结果,对满足条件的DLX求覆盖程度,

求出最大距离最小值。此题二分0~INF也可解决。

http://www.2cto.com/kf/201412/364538.html

先把我的wa代码扔着,抽空补上。。。

wa代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
const int MAXN=1e5+10;
int a[65][65];
int cmp(int a,int b){
return a>b;
}
struct Node{
int x,y;
};
Node dt[65];
int getl(Node a,Node b){
return abs(a.x-b.x)+abs(a.y-b.y);
}
int main(){
int T,N,K,kase=0;
scanf("%d",&T);
while(T--){
scanf("%d%d",&N,&K);
for(int i=0;i<N;i++){
scanf("%d%d",&dt[i].x,&dt[i].y);
}
for(int i=0;i<N;i++)for(int j=0;j<N;j++){
a[i][j]=getl(dt[i],dt[j]);
}
for(int i=0;i<N;i++)sort(a[i],a[i]+N,cmp);
/* for(int i=0;i<N;i++){
for(int j=0;j<N;j++)printf("%d ",a[i][j]);
puts("");
}*/
int mx=0x3f3f3f3f;
for(int i=0;i<N;i++)mx=min(mx,a[i][K-1]);
printf("Case #%d: %d\n",++kase,mx);
}
return 0;
}

  

Airport(未解决。。。)的更多相关文章

  1. C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)

    详解link  有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错 ...

  2. 直接请求json文件爬取天眼查企业信息(未解决验证码问题)——python3实现

    几个月前...省略一堆剧情...直接请求json文件爬取企业信息未成功,在知乎提问后,得到解决,有大佬说带上全部headers和cookie是可以的,我就又去试了下,果然可以(之前自己试的时候不行,没 ...

  3. 记一次未解决的异常:java.lang.NoClassDefFoundError: net/sf/json/JSONObject

    原因:Jetty会导致这个问题,Tomcat可以正常启动   一.异常产生现象 使用json-lib转换实体类/字符串,跑单元测试没问题,但是启动jetty后调用JSONArray.fromObjec ...

  4. Ajax返回中文乱码问题(未解决)

    (未解决) 暂时使用办法:改用返回Map<String,String>形式的返回值,在ajax中获取json形式的数据.

  5. openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)

    计算字段.关联字段,对象修改时自动变更保存(当 store=True 时),当 store=False 时,默认不支持过滤和分组7.0中非计算字段.关联字段只读时无法修改保存的问题暂未解决 示例代码: ...

  6. oracle,wamp,FZ突然出现问题,求解决方案(未解决,最终系统还原)

    -----背景------- 系统:win7  64位oracle 11g(11.1)每天都用oracle.用toad for oracle .电脑固定IP.未更改任何配置信息.用了几个月,突然出现了 ...

  7. (转载) C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)

    转载http://blog.csdn.net/neo_ustc/article/details/9024839 有 些人写C/C++(以下假定为C++)程序,对unresolved external ...

  8. tomcat中显示本地图片①(未解决)

    <本模块文仅作为学习过程中的自我总结,有需要可参看,欢迎指导与提出建议,很多地方可能断章取义,理解不到位,虚心求学.谢谢!> 资料查阅原因:2018/7/10(做项目中显示详情页面,从数据 ...

  9. JIRA状态为任务结束,但是解决结果为未解决相关配置

    1.JIRA状态为任务结束,但是解决结果为未解决,如下图所示: 2.在工作流->界面->结果处理中进行解决结果的配置(首先确保界面配置中有“解决结果”字段). 3.点击“结果处理”,进行结 ...

  10. [未解决]Exception in thread "main" java.lang.IllegalArgumentException: offset (0) + length (8) exceed the capacity of the array: 6

    调用这个方法 是报错,未解决 binfo.setTradeAmount(Double.parseDouble(new String(result.getValue(Bytes.toBytes(fami ...

随机推荐

  1. if和switch

    在 JavaScript 中,我们可使用以下条件语句:if 语句 -                        只有当指定条件为 true 时,使用该语句来执行代码if...else 语句 -   ...

  2. LeetCode 1. twoSums

    C++: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int&g ...

  3. Performance tool httperf

    httperf: A relatively well-known open source utility developed by HP, for Linux operating systems on ...

  4. HBase API详解

    一.Java API和HBase数据模型的关系 在Java中,与HBase数据库存储管理相关的类包括HBaseAdmin.HBaseConfiguration.HTable.HTableDescrip ...

  5. VUE中的v-if与v-show

    1.共同点 都是动态显示DOM元素 2.区别 (1)手段:v-if是动态的向DOM树内添加或者删除DOM元素:v-show是通过设置DOM元素的display样式属性控制显隐: (2)编译过程:v-i ...

  6. 使用Integer类实现二叉树排序

    class BinaryTree {     class Node {         private Comparable data;         private Node left;      ...

  7. 星际反作弊2.3for-win7-xp-win8-win10

    星际反作弊2.3for-win7-xp-win8-win10 下载地址 http://wj800.com/rar/scfzb.zip

  8. MySQL 用户登录与操作执行

    一个用户可以不登录进Mysql 数据库,由两方面的因数决定 1.你是谁:也就是mysql 数据库中记录的用户名和密码,在SQL Server数据库,中只要求说明你是谁就可以登录了,可是mysql 不是 ...

  9. C语言数据结构----栈与递归

    本节主要说程序中的栈函数栈的关系以及栈和递归算法的关系. 一.函数调用时的栈 1.程序调用时的栈是也就是平时所说的函数栈是数据结构的一种应用,函数调用栈一般是从搞地质向低地址增长的,栈顶为内存的低地址 ...

  10. Java面试题之七

    三十四.编码转换,怎样实现将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串. String a=new String("中".getBytes("gb ...