hdu5128The E-pang Palace dfs暴力
来源:互联网 发布:网络大电影众筹平台 编辑:程序博客网 时间:2024/06/18 13:06
//给n个点坐标 , 找出两个矩形//这两个矩形不相交且不接触 , 问两个矩形围的最大面积//n很小 , 直接暴力即可 , 只是需要注意一个矩形包含在//另一个矩形中时其面积是大的那个矩形的面积#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std ;const int maxn = 40 ;int x[maxn] , y[maxn] ;struct node{ int x , y ; bool operator < (struct node tmp) const { if(x == tmp.x) return y < tmp.y ; return x < tmp.x ; }}a[maxn] ;int vis[maxn] ;int n ;bool judge(int i){ if(x[0+i] != x[1+i] || x[2+i] != x[3+i] || y[0 + i] != y[2 + i] || y[1+i] != y[i+3]) return false ; return true ;}int get_ans(){ if(!judge(4))return 0 ; int minx = max(x[0] , x[4]) ; int miny = max(y[0] , y[4]) ; int maxx = min(x[3] , x[7]) ; int maxy = min(y[3] , y[7]) ; if(minx > maxx || miny > maxy) return ((y[3] - y[0])*(x[3] - x[0]) + (y[7] - y[4])*(x[7] - x[4])) ; if(x[4] > x[0] && y[4] > y[0] && x[7] < x[3] && y[7] < y[3]) return (y[3] - y[0])*(x[3] - x[0]) ; if(x[0] > x[4] && y[0] > y[4] && x[3] < x[7] && y[3] < y[7]) return (y[7] - y[4])*(x[7] - x[4]) ; return 0 ;}int dfs(int pos , int len , int sum){ if(sum == 2) return get_ans() ; if(len == 4) { if(!judge(0)) return 0 ; return dfs(0 , 0 , sum+1) ; } int ans = 0 ; for(int i = pos + 1 ;i <= n;i++) { if(vis[i])continue ; x[len+sum*4] = a[i].x ; y[len+sum*4] = a[i].y ; vis[i] = 1 ; ans = max(ans , dfs(i , len + 1 , sum)) ; vis[i] = 0 ; } return ans ;}int main(){ // freopen("in.txt" , "r" , stdin) ; //freopen("out.txt" , "w" , stdout) ; while(scanf("%d", &n) && n) { for(int i = 1;i <= n;i++) scanf("%d%d" , &a[i].x , &a[i].y) ; sort(a+1 , a+1+n) ; memset(vis , 0 , sizeof(vis)) ; int ans = dfs(0 , 0 , 0) ; if(!ans) puts("imp") ; else printf("%d\n" , ans) ; } return 0 ;}
0 0
- hdu5128The E-pang Palace dfs暴力
- The E-pang Palace
- HDOJ 5128 The E-pang Palace 暴力枚举+计算几何
- HDU 5128 The E-pang Palace(暴力)
- HDU 5128 The E-pang Palace(暴力瞎搞)
- 2014广州站 B - 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 (排序+暴力)2014 ICPC 广州站现场赛
- hdu 5128 The E-pang Palace(计算几何,暴力枚举)
- 2014广州亚洲现场赛/hdu 5128 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
- 【Java】Java中多态的实现
- 自定义View2 ,自定义路径,bitmap图像处理(缩放,翻转之类,还有Matrix和Mode)
- CrossAPP第一课
- 左值的定义和i++,++i
- poj1321
- hdu5128The E-pang Palace dfs暴力
- SINGLE NUMBER I & II & III
- C++面试题
- 看《暗杀》全智贤 去杀人都能美成神
- iOS国际化---跟随系统语言
- hdu5444 Elven Postman 二叉树建树
- CodeVS1394 数字串
- java__io__序列流(合并MP3)和对象序列化
- Android 绘图基础:Bitmap(位图)与Matrix(矩阵)实现图片5种操作(平移、旋转、错切、缩放、对称)