题目;http://acm.hdu.edu.cn/showproblem.php?pid=5128

给你n个点,问能否组成两个不相交的与坐标轴平行的矩形,能就输出两矩形的面积和,不能就输出一个字符串。

由于n的范围就30,所以就是枚举一下就行,先将能够组成的矩形找出来,然后再两两比较,注意的是有一个矩形包含另一个矩形的

情况,此时和就是大矩形的面积。写的时候细心一点就好。

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; struct point{
int x,y;
}a[]; int ju[][],dir1[][]; int max(int x,int y){return x>y?x:y;} bool cmp(point a,point b)
{
if (a.x==b.x) return a.y<b.y;
return a.x<b.x;
} int check(int *x,int *y){
if (a[x[]].x<a[y[]].x&&a[x[]].x>a[y[]].x&&a[x[]].y>a[y[]].y&&a[x[]].y<a[y[]].y)
return ;
return ;
} int main()
{
int n,i,q,k,u;
while (~scanf("%d",&n)&&n)
{
int ans=;
for (i= ; i<=n ; i++) scanf("%d%d",&a[i].x,&a[i].y);
sort(a+,a+n+,cmp);
for (i= ; i<=n ; i++){
int j=i;
while (a[i].x==a[j].x) j++;
for (k=i+ ; k<j ; k++){
for (u=j ; u<=n ; u++){
if (a[u].y==a[i].y){
for (q=u+ ; q<=n ; q++){
if (a[q].y==a[k].y){
ju[ans][]=i;
ju[ans][]=k;
ju[ans][]=u;
ju[ans++][]=q;
}
}
}
}
}
}
/*for (i=0 ; i<ans ; i++) {
for (int j=0 ; j<4 ; j++)
cout<<ju[i][j];
cout<<endl;
}*/
int sum=;
if (ans<) {puts("imp");continue;}
for (i= ; i<ans ; i++){
memset(dir1,,sizeof(dir1));
int ar1=(a[ju[i][]].x-a[ju[i][]].x)*(a[ju[i][]].y-a[ju[i][]].y);
for (k=a[ju[i][]].x ; k<=a[ju[i][]].x ; k++){
for (q=a[ju[i][]].y ; q<=a[ju[i][]].y ; q++)
dir1[k][q]=;
}
for (int j=i+ ; j<ans ; j++){
int flag=;
for (k=a[ju[j][]].x ; k<=a[ju[j][]].x ; k++){
for (q=a[ju[j][]].y ; q<=a[ju[j][]].y ; q++){
if (dir1[k][q]==) flag=;
}
}
if (flag==||check(ju[i],ju[j])||check(ju[j],ju[i])){
int ar2=ar1;
ar2+=(a[ju[j][]].x-a[ju[j][]].x)*(a[ju[j][]].y-a[ju[j][]].y);
if (check(ju[i],ju[j])) ar2=ar1;
if (check(ju[j],ju[i])) ar2-=ar1;
sum=max(ar2,sum);
}
}
}
if (sum==) puts("imp");
else printf("%d\n",sum);
}
return ;
}

hdu 5129 (枚举) The E-pang Palace的更多相关文章

  1. hdu 4770(枚举 + dfs爆搜)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4770 思路:由于最多只有15个".",可以直接枚举放置的位置,然后判断是否能够全部 ...

  2. hdu 3006 枚举集合能够产生的全部并集的集合

    http://acm.hdu.edu.cn/showproblem.php? pid=3006 刚买的CHERRY键盘 手感真好 可惜不习惯 写代码老是打错.一个题写了一上午,都是各种按错键DEBUG ...

  3. hdu 4282 枚举,非二分

    http://acm.hdu.edu.cn/showproblem.php?pid=4282 对于方程X^Z + Y^Z + XYZ = K,已知K求此方程解的个数,其中要求X<Y,Z>1 ...

  4. HDU 5225 枚举

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5225 bc(中文):http://bestcoder.hdu.edu.cn/contests ...

  5. hdu 4681(枚举+dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681 思路:首先预处理出串C在A,B中的所有的位置,然后从前向后求一次最长公共子序列,从后向前求一次最 ...

  6. hdu 4421(枚举+2-sat)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4421 思路:枚举32位bit,然后2-sat判断可行性,这里给出2-sat矛盾关系构图: 1.a&am ...

  7. HDU 5965 枚举模拟 + dp(?)

    ccpc合肥站的重现...一看就觉得是dp 然后强行搞出来一个转移方程 即 根据第i-1列的需求和i-1 i-2列的枚举摆放 可以得出i列摆放的种类..加了n多if语句...最后感觉怎么都能过了..然 ...

  8. 字符串(AC自动机):HDU 5129 Yong Zheng's Death

    Yong Zheng's Death Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/O ...

  9. hdu 5228 枚举

    题意:在前往ZJOI2015一试的路上,ZCC在同Fsygd打德州扑克时输光了所有的筹码.不过ZCC最近学会了一些黑技术.现在,他能够在游戏过程中更换任何他想要更换的牌.ZCC想要通过更换尽量少的牌得 ...

随机推荐

  1. Html - Table 表头固定和 tbody 设置 height 在IE不起作用的解决

    原文地址,转载请注明出处:http://www.cnblogs.com/jying/p/6294063.html 做项目的时候发现给 tbody设置 height 和 overflow-y 在IE下不 ...

  2. C# 图像处理:复制屏幕到内存中,拷屏操作

    /// <summary> /// 复制屏幕到内存中 /// </summary> /// <returns>返回内存流</returns> publi ...

  3. 吴裕雄 26-MySQL 复制表

    如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的.本章节将为大家介绍如何完整的复制MySQL数据 ...

  4. opencv 学习笔记

    Opencv 笔记 路径问题: 路径输入:Opencv载Qt中不能出现汉字,路径也不能出现汉字在vs中可以出现. (”D:/QTopencv/.1jpg”)=(”D:\\QTopencv\\.1jpg ...

  5. 微信小程序实现滚动分页加载更多

    参考网址:https://www.cnblogs.com/Smiled/p/8203306.html 1.wxml: <view class='myScroll' style='float:le ...

  6. hbase 调试各种报错

    1.master is initializing 怎么都不知道怎么回事,直接从hbase 2.0 换到了 hbase 2.1 2.java.lang.ClassNotFoundException: o ...

  7. java 集合 Se HashTreeSet

    Set接口  Set是Collection的子接口,与List相对 Set集合中的元素的特点是1,无序性 2,无下标3,无重复的元素 Set是个接口,所以无法直接创建对象,要依赖它的实现类来创建对象  ...

  8. metasploit framework(五):meterpreter基本命令和python扩展

    基于内存的DLL注入式payload 注入合法的系统进程并建立stager 基于stager上传和预加载DLL进行扩展模块的注入(客户端API) 基于stager建立的socket连接建立加密的TLS ...

  9. jQuery MD5 加密

    一 MD5 概述 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value) ...

  10. Anaconda常用命令大全

    使用conda 首先我们将要确认你已经安装好了conda 配置环境 下一步我们将通过创建几个环境来展示conda的环境管理功能.使你更加轻松的了解关于环境的一切.我们将学习如何确认你在哪个环境中,以及 ...