The E-pang Palace(暴力几何)
//暴力的几何题,问,n个点可以组成的矩形,不相交,可包含的情况下,最大的面积,还有就是边一定与 x y 轴平行,所以比较简单了
//暴力遍历对角线,搜出所有可能的矩形,然后二重循环所有矩形,判断一下,输出最大即可
1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #include <math.h> 5 #include <stdlib.h> 6 using namespace std; 7 #define MX 35 8 struct Mat 9 { 10 int a,b,c,d; 11 int area; 12 }mat[5000]; 13 14 int n; 15 int x[MX]; 16 int y[MX]; 17 int G[205][205]; 18 19 int check(int u,int v) 20 { 21 int xxx = min(min(x[mat[u].a],x[mat[u].b]),min(x[mat[u].c],x[mat[u].d])); 22 int xxy = min(min(y[mat[u].a],y[mat[u].b]),min(y[mat[u].c],y[mat[u].d])); 23 int ddx = max(max(x[mat[u].a],x[mat[u].b]),max(x[mat[u].c],x[mat[u].d])); 24 int ddy = max(max(y[mat[u].a],y[mat[u].b]),max(y[mat[u].c],y[mat[u].d])); 25 26 int xx = min(min(x[mat[v].a],x[mat[v].b]),min(x[mat[v].c],x[mat[v].d])); 27 int xy = min(min(y[mat[v].a],y[mat[v].b]),min(y[mat[v].c],y[mat[v].d])); 28 int dx = max(max(x[mat[v].a],x[mat[v].b]),max(x[mat[v].c],x[mat[v].d])); 29 int dy = max(max(y[mat[v].a],y[mat[v].b]),max(y[mat[v].c],y[mat[v].d])); 30 31 32 if (xxx>dx||xxy>dy||ddx<xx||ddy<xy)//在 右上左下 33 return mat[v].area+mat[u].area; 34 35 if (xxx>xx&&ddx<dx&&xxy>xy&&ddy<dy)//包含 36 return max(mat[v].area,mat[u].area); 37 if (xxx<xx&&ddx>dx&&xxy<xy&&ddy>dy) 38 return max(mat[v].area,mat[u].area); 39 40 return 0; 41 } 42 43 int main() 44 { 45 while (scanf("%d",&n)&&n) 46 { 47 memset(G,-1,sizeof(G)); 48 for (int i=0;i<n;i++) 49 { 50 scanf("%d%d",&x[i],&y[i]); 51 G[x[i]][y[i]]=i; 52 } 53 int m=0; 54 for (int i=0;i<n;i++) 55 { 56 for (int j=i+1;j<n;j++) 57 { 58 if (x[i]==x[j]||y[i]==y[j]) continue; 59 int fir,sec; 60 if (G[x[i]][y[j]]!=-1) fir=G[x[i]][y[j]]; 61 else continue; 62 if (G[x[j]][y[i]]!=-1) sec=G[x[j]][y[i]]; 63 else continue; 64 65 int lon=abs(x[i]-x[j]); 66 int kua=abs(y[i]-y[j]); 67 mat[m++]=(Mat){fir,sec,i,j,lon*kua}; 68 } 69 } 70 int ans = 0; 71 for (int i=0;i<m;i++) 72 { 73 for (int j=i+1;j<m;j++) 74 { 75 ans = max(ans,check(i,j)); 76 } 77 } 78 if (ans!=0) 79 printf("%d\n",ans); 80 else 81 printf("imp\n"); 82 } 83 return 0; 84 }
View Code
转载于:https://www.cnblogs.com/haoabcd2010/p/7218736.html
The E-pang Palace(暴力几何)相关推荐
- 2014ACM/ICPC亚洲区广州站- HDU-5127~5137,B(暴力+几何)E(签到水题)K(Dijkstra板子)
已经开始挖区域赛的坑了,CF已经不够打了,其实CF打不动了. 一点一点写吧,看看最后能写多少. B-The E-pang Palace(暴力+几何) 题目链接:http://acm.hdu.edu.c ...
- UVALive 7070 The E-pang Palace 暴力
The E-pang Palace Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/problem ...
- COCI 2018/2019 CONTEST #2 T4 Maja T5Sunčanje Solution
COCI 2018/2019 CONTEST #2 T4 T5 Solution abstract 花式暴力 #2 T5 Sunčanje 题意 按顺序给你1e5个长方形(左下角坐标&& ...
- CodeForces - 993C Careful Maneuvering(几何+暴力+状态压缩)
题目链接:点击查看 题目大意:在 x = -100 的直线上有 n 个敌方飞船,在 x = 100 的直线上有 m 个敌方飞船,现在在 x = 0 的直线上可以选择两个点作为诱饵,使得两侧的飞船瞄准射 ...
- CF#420 B. Okabe and Banana Trees 思维|暴力|几何
Okabe needs bananas for one of his experiments for some strange reason. So he decides to go to the f ...
- HDU5128The E-pang Palace(计算几何暴力枚举)
The E-pang Palace 题解:预处理出所有矩形,然后枚举满足情况的两两矩形即可.因为是矩形,所以我们只需要存对角的两个点即可.就是要注意嵌套也是满足的. 代码 #include<bi ...
- nyoj 7 街区最短路径问题 (曼哈顿距离(出租车几何) or 暴力)
街区最短路径问题 时间限制: 3000 ms | 内存限制:65535 KB 难度: 4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...
- 2015年上海现场赛重现 (A几何, K暴力搜索)
A: 题目链接 : https://vjudge.net/contest/250823#problem/A 参考 : https://www.cnblogs.com/helenawang/p/5465 ...
- HDU 5128 The E-pang Palace 【暴力】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5128 题意:给出N个点,由这些点构成两个矩形,矩形是平行于x轴的,而且不能相交不能相邻(共用同一边), ...
最新文章
- 安卓怎么显示res文件夹中的html_使用Android WebView加载现有的.html文件
- CRMEB删除公众号首页logo动画
- thinkpad重装系统不引导_Thinkpad笔记本重装系统时无法UEFI启动进入PE怎么办
- python上传文件到onedrive_基于Python的onedrive文件本地化浏览系统–PyOne
- Python编程各种推导式详解
- Web前端新手必备的知识点,大家都掌握了吗?
- R语言利器之ddply
- 深度linux wubildr.mbr,把玩Linux何须安装
- vue用post请求下载文件
- hishop6.0和易分销2.0数据库迁移手册
- 利用数据库进行肿瘤基因的挖掘
- 实现短信验证码有效时间
- 周杰伦一发新歌,服务器为什就挂掉了?
- Android源码下载教程
- 在vue项目中使用gsap,实现极佳的2d动画效果
- Sdwan关于视频监控
- 解决ubuntu14 restart mysql提示stop Unknown job:mysql问题
- 目标检测模型常用评价指标-(AP、mAP)
- 软件工程-大学体育馆管理系统交互图
- 解决python toad包报错joblib.externals.loky.process_executor.TerminatedWorkerError