//暴力的几何题,问,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(暴力几何)相关推荐

  1. 2014ACM/ICPC亚洲区广州站- HDU-5127~5137,B(暴力+几何)E(签到水题)K(Dijkstra板子)

    已经开始挖区域赛的坑了,CF已经不够打了,其实CF打不动了. 一点一点写吧,看看最后能写多少. B-The E-pang Palace(暴力+几何) 题目链接:http://acm.hdu.edu.c ...

  2. 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 ...

  3. COCI 2018/2019 CONTEST #2 T4 Maja T5Sunčanje Solution

    COCI 2018/2019 CONTEST #2 T4 T5 Solution abstract 花式暴力 #2 T5 Sunčanje 题意 按顺序给你1e5个长方形(左下角坐标&& ...

  4. CodeForces - 993C Careful Maneuvering(几何+暴力+状态压缩)

    题目链接:点击查看 题目大意:在 x = -100 的直线上有 n 个敌方飞船,在 x = 100 的直线上有 m 个敌方飞船,现在在 x = 0 的直线上可以选择两个点作为诱饵,使得两侧的飞船瞄准射 ...

  5. 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 ...

  6. HDU5128The E-pang Palace(计算几何暴力枚举)

    The E-pang Palace 题解:预处理出所有矩形,然后枚举满足情况的两两矩形即可.因为是矩形,所以我们只需要存对角的两个点即可.就是要注意嵌套也是满足的. 代码 #include<bi ...

  7. nyoj 7 街区最短路径问题 (曼哈顿距离(出租车几何) or 暴力)

    街区最短路径问题 时间限制: 3000 ms  |  内存限制:65535 KB 难度: 4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...

  8. 2015年上海现场赛重现 (A几何, K暴力搜索)

    A: 题目链接 : https://vjudge.net/contest/250823#problem/A 参考 : https://www.cnblogs.com/helenawang/p/5465 ...

  9. HDU 5128 The E-pang Palace 【暴力】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5128 题意:给出N个点,由这些点构成两个矩形,矩形是平行于x轴的,而且不能相交不能相邻(共用同一边), ...

最新文章

  1. 安卓怎么显示res文件夹中的html_使用Android WebView加载现有的.html文件
  2. CRMEB删除公众号首页logo动画
  3. thinkpad重装系统不引导_Thinkpad笔记本重装系统时无法UEFI启动进入PE怎么办
  4. python上传文件到onedrive_基于Python的onedrive文件本地化浏览系统–PyOne
  5. Python编程各种推导式详解
  6. Web前端新手必备的知识点,大家都掌握了吗?
  7. R语言利器之ddply
  8. 深度linux wubildr.mbr,把玩Linux何须安装
  9. vue用post请求下载文件
  10. hishop6.0和易分销2.0数据库迁移手册
  11. 利用数据库进行肿瘤基因的挖掘
  12. 实现短信验证码有效时间
  13. 周杰伦一发新歌,服务器为什就挂掉了?
  14. Android源码下载教程
  15. 在vue项目中使用gsap,实现极佳的2d动画效果
  16. Sdwan关于视频监控
  17. 解决ubuntu14 restart mysql提示stop Unknown job:mysql问题
  18. 目标检测模型常用评价指标-(AP、mAP)
  19. 软件工程-大学体育馆管理系统交互图
  20. 解决python toad包报错joblib.externals.loky.process_executor.TerminatedWorkerError

热门文章

  1. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E Maximum Flow
  2. 我叉,下载个ldc下载半天都搞不定.
  3. 1044: 顺序栈基本操作的实现
  4. 结合Elementplus源码讲解BEM的使用
  5. python 检查图品二维码,识别图片二维码
  6. Simple Operations on Sequence
  7. Python-从PDF中提取图片、压缩PDF
  8. PoE交换机的供电电压可否调整
  9. 2017年东南大学蒙纳士553C++编程题
  10. MBA-day33 绝对值的几何意义