UVA1616-Caravan Robbers(枚举)
Accept: 160 Submit: 1156
Time Limit: 3000 mSec
Problem Description
OnceuponatimetherewasagreedyKing who ordered his chief Architect to build a field for royal cricket inside his park. The Kingwassogreedy, thathewouldnotlisten to his Architect’s proposals to build a fieldrightintheparkcenterwithpleasant patterns of trees specially planted around and beautiful walks inside tree alleys for spectators. Instead, he ordered neither to cut nor to plant even a single tree in his park, but demanded to build the largest possible cricket field for his pleasure. If the Kind finds that the Architect hasdaredtotouchevenasingletreeinhis park or designed a smaller field that it was possible, then the Architect will loose his head. Moreover, he demanded his Architect to introduce at once a plan of the field with its exact location and size. YourtaskistohelppoorArchitecttosavehishead,bywritingaprogramthatwillfindthemaximum possible size of the cricket field and its location inside the park to satisfy King’s requirements. Thetaskissomewhatsimplifiedbythefact,thatKing’sparkhasarectangularshapeandissituated onaflatground. Moreover, park’sbordersareperfectlyalignedwithNorth-SouthandEast-Westlines. At the same time, royal cricket is always played on a square field that is also aligned with North-South andEast-Westlines. ArchitecthasalreadyestablishedaCartesiancoordinatesystemandhasprecisely measured the coordinates of every tree. This coordinate system is, of course, aligned with North-South and East-West lines. Southwestern corner of the park has coordinates (0, 0) and Northeastern corner of the part has coordinates (W,H), where W and H are the park width and height in feet respectively. For this task, you may neglect the diameter of the trees. Trees cannot be inside the cricket field, butmaybesituatedonitsside. Thecricketfieldmayalsotouchpark’sborder, butshallnotlieoutside the park.
Input
The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs. The first line of the input file contains three integer numbers N, W, and H, separated by spaces. N (0 ≤ N ≤ 100) is the number of trees in the park. W and H (1 ≤ W,H ≤ 10000) are the park width and height in feet respectively. Next N lines describe coordinates of trees in the park. Each line contains two integer numbers Xi and Yi separated by a space (0 ≤ Xi ≤ W, 0 ≤ Yi ≤ H) that represent coordinates of i-th tree. All trees are located at different coordinates.
Output
Sample Input
7 10 7
3 2
4 2
7 0
7 3
4 5
2 4
1 7
Sample Output
4 3 4
题解:本来想用单调栈,一看数据范围,果断枚举,枚举横坐标的两个端点,遍历所有可能的纵坐标,更新答案即可。
#include <bits/stdc++.h>
using namespace std;
const int maxn = + ;
int n, r, c;
struct Tree {
int x, y;
Tree() {}
Tree(int _x, int _y) : x(_x), y(_y) {}
bool operator < (const Tree &a)const {
return y < a.y;
}
}tree[maxn];
int main()
{
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int iCase;
scanf("%d", &iCase);
bool flag = false;
while (iCase--) {
if (flag) printf("\n");
flag = true;
scanf("%d%d%d", &n, &c, &r);
for (int i = ; i < n; i++) {
scanf("%d%d", &tree[i].y, &tree[i].x);
}
tree[n] = Tree(, );
tree[n + ] = Tree(r, );
n += ;
sort(tree, tree + n);
int Max = , ansx = , ansy = ;
for (int i = ; i < n; i++) {
for (int j = i + ; j < n; j++) {
int lx = min(tree[i].x, tree[j].x);
int rx = max(tree[i].x, tree[j].x);
int len = rx - lx, now = ;
for (int k = ; k < n; k++) {
if (lx < tree[k].x && tree[k].x < rx) {
int a = tree[k].y - now < len ? tree[k].y - now : len;
if (a > Max) {
Max = a;
ansx = lx, ansy = now;
}
now = tree[k].y;
}
}
int a = c - now < len ? c - now : len;
if (a > Max) {
Max = a;
ansx = lx, ansy = now;
}
}
}
printf("%d %d %d\n", ansy, ansx, Max);
}
return ;
}
UVA1616-Caravan Robbers(枚举)的更多相关文章
- UVA 1616 Caravan Robbers 商队抢劫者(二分)
x越大越难满足条件,二分,每次贪心的选区间判断是否合法.此题精度要求很高需要用long double,结果要输出分数,那么就枚举一下分母,然后求出分子,在判断一下和原来的数的误差. #include& ...
- 【习题 8-14 UVA - 1616】Caravan Robbers
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 二分长度. 显然长度越长.就越不可能. 二分的时候.可以不用管精度. 直接指定一个二分次数的上限就好. 判断长度是否可行.直接用贪心 ...
- UVa - 1616 - Caravan Robbers
二分找到最大长度,最后输出的时候转化成分数,比较有技巧性. AC代码: #include <iostream> #include <cstdio> #include <c ...
- UVa 1616 Caravan Robbers (二分+贪心)
题意:给定 n 个区间,然后把它们变成等长的,并且不相交,问最大长度. 析:首先是二分最大长度,这个地方精度卡的太厉害了,都卡到1e-9了,平时一般的1e-8就行,二分后判断是不是满足不相交,找出最长 ...
- NEERC2012
NEERC2012 A - Addictive Bubbles 题目描述:有一个\(n \times m\)的棋盘,还有不同颜色的棋子若干个,每次可以消去一个同种颜色的联通块,得到的分数为联通块中的棋 ...
- UVA1616-Caravan Robbers(二分)
Problem UVA1616-Caravan Robbers Accept: 96 Submit: 946Time Limit: 3000 mSec Problem Description Lon ...
- UVA10570-Meeting with Aliens(枚举)
Problem UVA1616-Caravan Robbers Accept: 531 Submit: 2490Time Limit: 3000 mSec Problem Description I ...
- SCOJ 4484 The Graver Robbers' Chronicles 后缀自动机
4484: The Graver Robbers' Chronicles 题目连接: http://acm.scu.edu.cn/soj/problem.action?id=4484 Descript ...
- Swift enum(枚举)使用范例
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
随机推荐
- mybatis_01简介
1.1 MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...
- JS之innerHTML,innerText,outerHTML,textContent的用法与区别
示例html代码: <div id="test"> <span style="color:red">test1</span> ...
- JVM调优日志解析分析
一.调优参数设置 JVM的GC日志的主要参数包括如下几个: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStam ...
- 对YUV数据进行裁剪
项目中用到,用来对YUV数据(图片的yuv或者视频单帧yuv数据)进行裁剪. 格式介绍:http://blog.csdn.net/vblittleboy/article/details/1094514 ...
- eclipse安装其他颜色主题包
eclipse安装其他颜色主题包: 用Help-Install new software安装的时候,work with的URL是 http://eclipse-color-theme.github.c ...
- Android 直接修改dex破解
直接修改dex破解 一.编写一个简单的验证程序 (1)MainActivity: protected void onCreate(BundlesavedInstanceState) { super.o ...
- go 开发中需要注意的与python的不同点
从python转golang开发已经3个月了,因为写过c++,所以对golang接受的还算快,这段经历也不是很痛苦.伯乐在线上看了一些大神关于python转golang过程中的不适应和吐槽,决定写下篇 ...
- 关于一体机打印新加菜按钮更改为下单小票打印设置FAQ(适用正餐6.0.1.0+,轻餐4.0.6.2+)
适用版本:正餐6.0.1.0+,轻餐4.0.6.2+ 实际场景:更新后小票设置中的打印新加菜按钮更换为下单小票打印设置,更换后,设置中,有3个选项: 1.仅打印新加菜 (选中后,订单加菜后前台小 ...
- c# 建立到数据源的连接 以及获取项目配置文件的属性
两种连接数据库的写法: <connectionStrings> <add name="HRModelsContainer" connectionString=&q ...
- Java中 try--catch-- finally、throw、throws 的用法
一.try {..} catch {..}finally {..}用法 try { 执行的代码,其中可能有异常.一旦发现异常,则立即跳到catch执行.否则不会执行catch里面的内容 } catch ...