2014广州站 B - The E-pang Palace(暴力)
来源:互联网 发布:字符串快速匹配算法 编辑:程序博客网 时间:2024/04/28 09:40
题目地址
题目大意:给出n个点,求这n个点(n<=30)构成的2个矩形的总面积最大,2个矩形完全不想交且平行坐标轴,但是可以完全包含(不重合)
解题思路:n很小,暴力,先求出所有平行于坐标轴的矩形,再在满足题意的矩形中分类(完全不想交or完全包含)求最大,求所有矩形的时候以2个对角点来确定矩形,输入点的时候标记一下点是否存在(用来确定对角点的另2点)
#include<bits/stdc++.h>using namespace std;const int maxn = 30+10;const int maxm = 200+10;int dot[maxm][maxm];//标记点存在struct Point{ int x,y;}p[maxn];bool cmp(Point a,Point b){ if(a.x == b.x) return a.y < b.y; return a.x < b.x;}struct Rec //矩形{ Point A,B;//A为左下角,B为右上角 int area;}rec[maxm];int result(int a,int b) //判断2个矩形的相对位置{ if(rec[a].B.x < rec[b].A.x) return 1;//相离 if(rec[a].B.y < rec[b].A.y) return 1;//相离 if(rec[a].A.x < rec[b].A.x && rec[a].A.y < rec[b].A.y && rec[a].B.x > rec[b].B.x && rec[a].B.x > rec[b].B.x) return 2;//相嵌 return 0;}int main(){ int n; while(scanf("%d",&n) != EOF) { if(!n) break; memset(dot,0,sizeof(dot)); for(int i = 1; i <= n; i++) { scanf("%d%d",&p[i].x,&p[i].y); dot[p[i].x][p[i].y] = 1; } sort(p+1,p+n+1,cmp); int cnt = 1; for(int i = 1; i <= n; i++) { for(int j = i+1; j <= n; j++) { if(p[i].x < p[j].x && p[i].y < p[j].y) //2角 { if(dot[p[i].x][p[j].y] && dot[p[j].x][p[i].y]) //另外2角存在 { rec[cnt].A = p[i]; rec[cnt].B = p[j]; rec[cnt].area = (p[j].x-p[i].x)*(p[j].y-p[i].y); //printf("%d %d\n",cnt,rec[cnt].area); cnt++; } } } } //printf("%d\n",cnt); int maxx = -1; for(int i = 1; i < cnt; i++) { for(int j = i+1; j < cnt; j++) { if(result(i,j) == 1) maxx = max(maxx,rec[i].area+rec[j].area); else if(result(i,j) == 2) maxx = max(maxx,rec[i].area); } } if(maxx == -1) puts("imp"); else printf("%d\n",maxx); } return 0;}
0 0
- 2014广州站 B - The E-pang Palace(暴力)
- HDU 5128 The E-pang Palace (排序+暴力)2014 ICPC 广州站现场赛
- 2014广州亚洲现场赛/hdu 5128 The E-pang Palace(计算几何:暴力枚举)
- HDU5128 The E-pang Palace(2014年广州赛区)
- HDU 5128 The E-pang Palace(暴力)
- HDU 5128 The E-pang Palace(暴力)
- hdu 5128 The E-pang Palace 2014ACM/ICPC亚洲区广州站
- HDU 5128 The E-pang Palace(2014亚洲区广州站现场赛)
- HDU 5218 The E-pang Palace (简单几何—2014广州现场赛)
- The E-pang Palace
- HDOJ 5128 The E-pang Palace 暴力枚举+计算几何
- HDU 5128 The E-pang Palace(暴力瞎搞)
- hdu 5128 The E-pang Palace(几何暴力)
- hdu5128 The E-pang Palace
- hdu 5128 The E-pang Palace(计算几何:暴力枚举)
- hdu 5128 The E-pang Palace (计算几何+暴力枚举)
- hdu 5128 The E-pang Palace(计算几何,暴力枚举)
- HDU 5128 The E-pang Palace (暴力+几何思维 详解)
- 树链剖分
- 百度、阿里、腾讯、微软的征程:刘国栋
- webform C# log4net不起作用 5种 原因
- UFLDL Tutorial 线性回归
- BestCoder Round #58 (div.2)(hdu 5494,hdu5495,hdu5496)
- 2014广州站 B - The E-pang Palace(暴力)
- POST和GET、NSMutableURLRequest和NSURLRequest两组分别的区别
- uvalive4744(数论)
- 关于Android Studio引用Module的一些设置
- 【笔试】51、数组中只出现一次的数字
- Cocos2D中的ObjectAL简介
- java8 lambda学习笔记之编译与运行过程
- [Android]Android权限列表
- 读《聪明的投资者》