uva 1312 Cricket Field
来源:互联网 发布:c专家编程怎么样 编辑:程序博客网 时间:2024/06/08 06:57
题意:在一块地上有一堆树,找一个最大无树的正方形(边上可以有树)。输出西南端点的横纵坐标及边长。
分析:枚举,扫描
#include<cstdio>#include<algorithm>#define maxn 110using namespace std;struct Point{ int x, y;} p[maxn];int n, W, H, y[maxn];bool cmp(const Point a, const Point b){ if(a.x == b.x) return a.y < b.y; return a.x < b.x;}void init(){ for(int i = 0; i < n; i++) { scanf("%d%d", &p[i].x, &p[i].y); y[i] = p[i].y; } y[n] = 0, y[n + 1] = H; sort(y, y + n + 2); sort(p, p + n, cmp);}void solve(){ int ans = 0, xx, yy; int m = unique(y, y + n + 2) - y; for(int i = 0; i < m; i++) for(int j = i + 1; j < m; j++) { int h = y[j] - y[i], pre = 0, w; for(int k = 0; k < n; k++) { if(p[k].y <= y[i] || p[k].y >= y[j]) continue; w = p[k].x - pre; if(ans < min(w, h)) { ans = min(w,h); xx = pre; yy = y[i]; } pre = p[k].x; } w = W - pre; if(ans < min(h, w)) { ans = min(h,w); xx = pre; yy = y[i]; } } printf("%d %d %d\n",xx, yy, ans);}int main(){ int cas; scanf("%d", &cas); while(cas--) { scanf("%d%d%d",&n, &W, &H); init(); solve(); // printf("cas = %d\n",cas); if(cas) printf("\n"); } return 0;}
0 0
- uva 1312 - Cricket Field
- UVA--1312--Cricket Field
- UVa - 1312 - Cricket Field
- uva 1312 Cricket Field
- UVA - 1312 Cricket Field 构造
- UVA 1312(p256)----Cricket Field
- UVa 1312 Cricket Field【暴力】
- UVa 1312 - Cricket Field (高效枚举)
- uva 1312——Cricket Field
- 1312 - Cricket Field
- uva 1312 - Cricket Field(枚举+离散化)
- UVa 1312 Cricket Field 解题报告(枚举 + 离散化)
- 1312 - Cricket Field(技巧枚举+离散化)
- Uva 1312 Cricket Filed 枚举
- Cricket Field poj 2173
- UVALive - 2689 Cricket Field
- UVALive - 2689 Cricket Field
- Fantasy Cricket UVA
- C语言calloc()函数
- iOS开发(OC)——日期选择器
- 动态库的调试和崩溃的处理方法
- python-day0001--环境搭建
- Ubuntu15.10 下安装Oracle 11g
- uva 1312 Cricket Field
- 随笔
- pandas的iloc的神奇之处
- win 10 某个WiFi无Internet 的决绝方案
- hdu 2616 dfs回溯暴力
- 关于shiro+springMVC整合使用的问题
- matlab图像处理函数
- 微信公众平台开发(76) 获取用户基本信息
- cc254x之修改协议栈按键io