题意:

  在w*h的坐标上给n个点, 然后求一个最大的矩形,使得这个矩形内(不包括边界)没有点,注意边界上是可以有点的。

分析:

  把坐标离散化。通过两重循环求矩形的高,然后枚举,看是否能找到对应的矩形。

代码:

  

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn=120;
int n,w,h;
int d[maxn];
struct Node
{
int x,y;
bool operator < (const Node &a) const
{
if(x==a.x)
return y<a.y;
return x<a.x;
}
};
Node node[maxn];
void solve()
{
sort(node+1,node+n+1);
sort(d,d+n+2);
int ans=0;
int ansx,ansy;
int i,j,k;
for(i=0;i<=n+1;i++)
{
for(j=i+1;j<=n+1;j++)
{
int high=d[j],low=d[i],temp=0,r=high-low,c;
for(k=1;k<=n;k++)
{
if(node[k].y<=low||node[k].y>=high)
continue;
c=node[k].x-temp;
if(ans<min(r,c))
{
ans=min(r,c);
ansx=temp;
ansy=low;
}
temp=node[k].x;
}
c=w-temp;
if(ans<min(r,c))
{
ans=min(r,c);
ansx=temp;
ansy=low;
}
}
}
printf("%d %d %d\n",ansx,ansy,ans);
}
int main()
{
int cas;
int flag=1;
scanf("%d",&cas);
while(cas--)
{
scanf("%d%d%d",&n,&w,&h);
d[0]=0;
d[n+1]=h;
int i;
for(i=1;i<=n;i++)
{
scanf("%d%d",&node[i].x,&node[i].y);
d[i]=node[i].y;
}
solve();
if(cas!=0)
printf("\n");
}
}

UVA 1312 Cricket Field的更多相关文章

  1. UVa 1312 Cricket Field (枚举+离散化)

    题意:在w*h的图上有n个点,要求找出一个正方形面积最大,且没有点落在该正方形内部. 析:枚举所有的y坐标,去查找最大矩形,不断更新. 代码如下: #include <cstdio> #i ...

  2. Codeforces Gym 100002 C "Cricket Field" 暴力

    "Cricket Field" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1000 ...

  3. E - Cricket Field

    Description   Once upon a time there was a greedy King who ordered his chief Architect to build a fi ...

  4. 【uva 1312】Cricket Field(算法效率--技巧枚举)

    题意:一个 L*R 的网格里有 N 棵树,要求找一个最大空正方形并输出其左下角坐标和长.(1≤L,R≤10000, 0≤N≤100) 解法:枚举空正方形也就是枚举空矩阵,先要固定一个边,才好继续操作. ...

  5. UVA-1312 Cricket Field (技巧枚举)

    题目大意:在一个w*h的网格中,有n个点,找出一个最大的正方形,使得正方形内部没有点. 题目分析:寻找正方形实质上等同于寻找矩形(只需令长宽同取较短的边长).那么枚举出所有可能的长宽组合取最优答案即可 ...

  6. 紫书 习题8-19 UVa 1312 (枚举技巧)

    这道题参考了https://www.cnblogs.com/20143605--pcx/p/4889518.html 这道题就是枚举矩形的宽, 然后从宽再来枚举高. 具体是这样的, 先把所有点的高度已 ...

  7. 【习题 8-19 UVA-1312】Cricket Field

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 添加两个y坐标0和h 然后从这n+2个y坐标中任选两个坐标,作为矩形的上下界. 然后看看哪些点在这个上下界中. 定义为坐标集合S S ...

  8. UVA1616-Caravan Robbers(枚举)

    Problem UVA1616-Caravan Robbers Accept: 160  Submit: 1156Time Limit: 3000 mSec Problem Description O ...

  9. WC2021 题目清单

    Day2 上午 <IOI题型与趣题分析> 来源 题目 完成情况 备注 IOI2002 Day1T1 Frog 已完成 IOI2002 Day1T2 Utopia IOI2002 Day1T ...

随机推荐

  1. 449A - Jzzhu and Chocolate 贪心

    一道贪心题,尽量横着切或竖着切,实在不行在交叉切 #include<iostream> #include<stdio.h> using namespace std; int m ...

  2. Android 一次退出所有activity的方法

    转自:http://bbs.51cto.com/thread-970933-1.html 因为android的API中没有提供一次性退出的接口所以想要在多activity的程序里面一次性退出的话就要费 ...

  3. Path Sum,Path Sum II

    Path Sum Total Accepted: 81706 Total Submissions: 269391 Difficulty: Easy Given a binary tree and a ...

  4. operator 类型转换符

    参考脚本之家的这篇博客   http://www.jb51.net/article/41333.htm 类型转换操作符(type conversion operator)是一种特殊的类成员函数,它定义 ...

  5. discuz二次开发笔记(三)------discuz的安装步骤

    下载好discuz的安装包后,解压在自己定义的文件夹里面,将upload里面的文件拷贝出来放到和upload同级的地方,然后删除upload文件夹. 打开浏览器,输入你文件夹的地址:如:http:// ...

  6. oracle 序列

    查询序列值 select td_prodline_attr_seq.nextval from dual     查询用户建的所有序列 用户名 必须大写select SEQUENCE_OWNER,SEQ ...

  7. 安装weblogic的步骤10.3.0.0

    一.安装前的注意事项: weblogic在安装前必须要有对应的jdk支持weblogic的运行.所以在安装之前一定要根据本机上安装的jdk来选择安装的weblgoic的什么版本.因为weblogic的 ...

  8. FullScreenFragment Code

    package com.dexode.fragment; import android.annotation.TargetApi; import android.app.Activity; impor ...

  9. 《JavaScript Dom编程艺术》用例总结

    页首HTML 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  10. cocos2dx工程中接入支付宝sdk

    1. 首先去支付宝官网下载开发者文档 2. 然后按着开发者文档将支付宝的sdk导入到你的工程中,并关联到工程中,步骤入下图: (1)将从支付宝官方网站获得的支付宝的sdk的jar包拷贝到工程中的lib ...