hihoCoder 1273 清理海报
来源:互联网 发布:java线程共享数据 编辑:程序博客网 时间:2024/04/28 13:36
题目链接:http://hihocoder.com/problemset/problem/1273
题 意:这个题的题意不太明确。A覆盖B的条件是公共面积大于0,也就是一条边重合不算;角被覆盖的条件是角在矩形的内部,在边上也不算;还有如果B覆盖A,C覆盖B,C不覆盖A,如果撕开A的话,C也会被撕掉,也就是可传递。
思 路:其实就是判断矩形相交,然后建图,跑dfs,思路还是很简单的(虽然矩形相交写崩了=。=)。
好久没写题了,发现了一些缺点:
- 结构体定义的时候爱偷懒,导致后面写起来比较烦
- 代码过于紧凑,看了其他人的代码之后感觉自己的不好看T T
- 还有就是分类太乱了,变量定义啥的到处都是- -
发个代码:
#include <cstdio>#include <iostream>#include <cstring>#include <vector>using namespace std;const int maxn = 1010;struct Point{ int x,y; Point(){} Point(int a,int b){ x = a;y = b; } void in(){ scanf("%d%d",&x,&y); }};struct Rect{ Point pa,pb; void inpt(){ pa.in(); pb.in(); }}rect[maxn];int w,h,n;int can[maxn];vector<int>mm[maxn];int tot;bool vis[maxn];bool pin(Point p, Rect rec){ return (p.x > rec.pa.x && p.x < rec.pb.x && p.y > rec.pa.y && p.y < rec.pb.y);}bool over(Rect a, Rect b){ Point pa, pb; pa = Point(max(a.pa.x, b.pa.x), max(a.pa.y, b.pa.y)); pb = Point(min(a.pb.x, b.pb.x), min(a.pb.y, b.pb.y)); if(pa.x < pb.x && pa.y < pb.y)return true; return false;}void dfs(int x){ vis[x] = 1; tot ++; for(int i = 0;i < mm[x].size();i ++){ if(vis[mm[x][i]] == 0){ dfs(mm[x][i]); } }}int main(){ scanf("%d%d%d",&w,&h,&n); for(int i = 0;i < n;i ++){ rect[i].inpt(); } for(int i = 0;i < n;i ++){ for(int j = i + 1;j < n;j ++){ if(pin(rect[i].pa, rect[j]))can[i] |= 1; if(pin(rect[i].pb, rect[j]))can[i] |= 2; if(pin(Point(rect[i].pa.x, rect[i].pb.y), rect[j]))can[i] |= 4; if(pin(Point(rect[i].pb.x, rect[i].pa.y), rect[j]))can[i] |= 8; if(over(rect[i],rect[j]))mm[i].push_back(j); } } int ans = 0,chos = 0; for(int i = 0;i < n;i ++){ if(can[i] != 15){ memset(vis,0,sizeof(vis)); tot = 0; dfs(i); if(tot > ans){ ans = tot; chos = i + 1; } } } cout<<ans<<' '<<chos<<endl; return 0;}
1 0
- hihoCoder 1273 清理海报
- hihocoder #1273 : 清理海报
- Hihocoder 1273 清理海报 DAG建图+几何
- hihocoder #1273 清理海报 建图思想+dfs+状态压缩记录 好题!
- Hihocoder hiho一下 第140周 清理海报
- hihoCoder_1273_海报清理
- hiho一下 第140周 清理海报
- 海报
- hiho一下 第140周-清理海报(DAG+dfs)
- hihocoder:
- hihoCoder
- Hihocoder
- hihocoder
- hihocoder
- hihocoder
- hihocoder
- hihocoder
- HihoCoder
- 根据Request获取客户端IP
- 108 - Convert Sorted Array to Binary Search Tree
- Collections工具类中的sort方法
- php Connection refused
- Kafka+Spark Streaming+Redis实时计算整合实践
- hihoCoder 1273 清理海报
- delete delete[]
- Mesos, Marathon, Docker 平台部署记录
- GTMBase64导入报错解决方法
- RSA算法原理(二)
- 用户的主要群组和次要群组
- 如何删除MAC系统自带输入法
- 51nod1015 水仙花数
- Android键盘遮挡输入框的问题