hdu 5129 (枚举) The E-pang Palace
题目;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的更多相关文章
- hdu 4770(枚举 + dfs爆搜)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4770 思路:由于最多只有15个".",可以直接枚举放置的位置,然后判断是否能够全部 ...
- hdu 3006 枚举集合能够产生的全部并集的集合
http://acm.hdu.edu.cn/showproblem.php? pid=3006 刚买的CHERRY键盘 手感真好 可惜不习惯 写代码老是打错.一个题写了一上午,都是各种按错键DEBUG ...
- hdu 4282 枚举,非二分
http://acm.hdu.edu.cn/showproblem.php?pid=4282 对于方程X^Z + Y^Z + XYZ = K,已知K求此方程解的个数,其中要求X<Y,Z>1 ...
- HDU 5225 枚举
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5225 bc(中文):http://bestcoder.hdu.edu.cn/contests ...
- hdu 4681(枚举+dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681 思路:首先预处理出串C在A,B中的所有的位置,然后从前向后求一次最长公共子序列,从后向前求一次最 ...
- hdu 4421(枚举+2-sat)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4421 思路:枚举32位bit,然后2-sat判断可行性,这里给出2-sat矛盾关系构图: 1.a&am ...
- HDU 5965 枚举模拟 + dp(?)
ccpc合肥站的重现...一看就觉得是dp 然后强行搞出来一个转移方程 即 根据第i-1列的需求和i-1 i-2列的枚举摆放 可以得出i列摆放的种类..加了n多if语句...最后感觉怎么都能过了..然 ...
- 字符串(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 ...
- hdu 5228 枚举
题意:在前往ZJOI2015一试的路上,ZCC在同Fsygd打德州扑克时输光了所有的筹码.不过ZCC最近学会了一些黑技术.现在,他能够在游戏过程中更换任何他想要更换的牌.ZCC想要通过更换尽量少的牌得 ...
随机推荐
- CSS强制换行和禁止换行代码
一.强制换行 1.word-break: break-all; 只对英文起作用,以字母作为换行依据. 2.word-wrap: break-word; 只对英文起作 ...
- Android 抓取LOG的几种命令【转】
通常调试时候需要抓取log信息,下面几种通过ADB命令来抓取log的方法: USB连接上手机,手机需要其他操作:然后运行ADB工具:输入不同的命令即可抓取对应的LOG信息. 抓取radio LOG信息 ...
- NTKO OFFICE文档控件
目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便. ...
- location search的中文加密
最近项目中遇到一个这样问题,在页面跳转时,追加了location.search,有中文字符,但是在分享第二次时,这个链接无法获取中文字段,变成乱码. 仔细对比,发现在页面分享时,浏览器自动对中文进行了 ...
- KADEMLIA算法学习
在上一篇文章中<P2P技术是什么>,我们介绍了P2P技术的特点以及发展历史.在本篇文章中,我们来介绍某一个具体的算法. 如今很多P2P网络的实现都采用DHT的方式实现查找,其中Kademl ...
- ubuntu下zaibbix3.2报警搭建
1.安装sudo apt install sendmail 2.测试发送邮件: echo "正文!" | mail -s 标题 XXX@qq.com 3.成功后继续安装邮件服务器. ...
- metasploit framework(九):SMB服务扫描
SMB版本扫描 扫描命名管道,判断SMB服务类型 SMB共享枚举 SMB用户枚举 SID枚举
- Pandas文本操作之读取操作
读写文本格式的数据 pandas中的解析函数 函数 说明 read_csv 从文件.url.文件型对象中加载带分隔符的数据,默认分隔符为逗号 read_table 从文件.url.文件型对象中加载带分 ...
- windows环境下搭建kafka
注意:请确保本地Java环境变量配置成功 1.安装Zookeeper Kafka的运行依赖于Zookeeper,所以在运行Kafka之前我们需要安装并运行Zookeeper 1.1 下载安装文件: h ...
- Vue.js 生态之vue-router
vue-router是什么~~ vue-router是Vue的路由系统,定位资源的,我们可以不进行整页刷新去切换页面内容. vue-router的安装和基本配置 vue-router.js 可以下载 ...