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想要通过更换尽量少的牌得 ...
随机推荐
- ROS:ROS操作类MK.cs
class MK { Stream connection; TcpClient con; public MK(string ip,int port) { con = new TcpClient(); ...
- jquery 页面传值 汉字
function getURLParameter(name) { return decodeURIComponent( (new RegExp('[?|&]' + name + '=' + ' ...
- MySQL 5.7 使用原生JSON类型
首先回顾一下JSON的语法规则: 数据在键值对中, 数据由逗号分隔, 花括号保存对象, 方括号保存数组. 按照最简单的形式,可以用下面的JSON表示: {"NAME": " ...
- canvas 动画 时钟clock
<canvas id="clock" width="500" height="500"></canvas> func ...
- CentOS 6 UNEXPECTED INCONSISTENCY RUN fsck MANUALLY
1:按Control-D,系统自动重启: 2:直接输入root的密码进入命令行 3:看网上的介绍需要输入mount |grep “on/” 找到root的分区,我试过后无效 4:直接输入fsck -y ...
- chase
chase 英[tʃeɪs] 美[tʃes] vt. 追求; 追捕; 追寻; 镂刻; n. 追捕; 打猎; 猎物(指鸟兽等); 槽; vi. 追逐,追赶; 追寻; 追求(常与after连用); [口语 ...
- Class语法糖
TypeScript源码 class A { hello() { } } class B extends A{ welcome() { } } TypeScript编译 var __extends = ...
- 微信小程序开发——导航失效的解决办法
异常描述: 使用 navigator 导航,各种属性配置没问题,就是点击死活不跳转. 异常分析: 遇到这种情况,要先考虑的就是当前配置的导航url,是不是已经使用在tabBar中,因为小程序对于nav ...
- TCP/IP中的四元组、五元组、七元组
四元组:源IP地址.目的IP地址.源端口.目的端口 五元组:源IP地址.目的IP地址.源端口.目的端口.传输层协议 七元组:源IP地址.目的IP地址.源端口.目的端口.传输层协议,服务类型以及接口索引
- f5申请并激活License
建议在图形界面下进行激活BIG-IP设备License的操作.正式设备第一次开机时会自带一个激活码,但仍然需要激活License才能使用. 如果BIG-IP设备可以访问因特网的话,可以使用自动模式激活 ...