hihoCoder_1273_海报清理
2016-04-09 19:14
357 查看
这题在当时做的时候做不出来。后来参考网上大牛思想写的代码。大牛网址:http://blog.csdn.net/houxinssdut/article/details/50885954
#include <iostream> #include <cstring> #include <vector> #include <algorithm> using namespace std; const int N = 1005; //最多的海报数量 bool visit ; int can ; vector<int> mm ; int total; //定义一个点 struct P { int x,y; P() { ; } P(int x,int y) { this->x = x; this->y = y; } void inP() { cin>>this->x>>this->y; } }; //定义一张海报 struct Rect { P pa,pb; Rect() { ; } void inRect() { this->pa.inP(); this->pb.inP(); } }; Rect rect ; //判断点是否在矩阵内部 bool pin(P p, Rect r) { return p.x>r.pa.x && p.x<r.pb.x && p.y>r.pa.y && p.y<r.pb.y; } //判断矩阵之间是否相交 bool isOver(Rect r1, Rect r2) { P p1(max(r1.pa.x, r2.pa.x), max(r1.pa.y, r2.pa.y)); P p2(min(r1.pb.x, r2.pb.x), min(r1.pb.y, r2.pb.y)); return p1.x<p2.x && p1.y<p2.y; } void dfs(int i) { total++; visit[i] = true; for(size_t j=0; j<mm[i].size(); ++j) { if(visit[mm[i][j]] == 0) { dfs(mm[i][j]); } } } int main() { int n,w,h; int i,j; int ans,index; cin>>w>>h>>n; for(i=0; i<n; ++i) { rect[i].inRect(); } memset(can, 0, sizeof(can)); for(i=0; i<n; i++) { for(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(P(rect[i].pa.x, rect[i].pb.y), rect[j])) can[i] |= 4; if(pin(P(rect[i].pb.x, rect[i].pa.y), rect[j])) can[i] |= 8; if(isOver(rect[i], rect[j])) mm[i].push_back(j); } } ans = 0; for(i=0; i<n; ++i) { if(can[i] != 15) { memset(visit, 0, sizeof(visit)); total = 0; dfs(i); if(total > ans) { ans = total; index = i+1; } } } cout<<ans<<" "<<index<<endl; return 0; }
相关文章推荐
- windows安装OrientDB总结
- python入门
- TCP/IP协议族-----13、运输层简单介绍
- ViewPager左右滑动
- CentOS安装gitlab,gerrit,jenkins并配置ci流程
- 房屋面积实测表
- socket编程UDP客户端原理简介
- HDU 4059 容斥原理+快速幂+逆元
- 输出1000 ——2000的闰年
- 文件传输基础——Java IO流
- VMware网络连接模式详解:桥接、NAt、host-only
- 基于C#反射机制的工厂模式
- 关于eclipse连接不到genymotion的问题,eclipsegenymotion
- Linux 下wifi 驱动开发(三)—— SDIO接口WiFi驱动浅析
- ZooKeeper的选主机制
- 结队编程———黄金点游戏
- hdu 2296 Ring AC自动机+DP
- TCP/IP协议栈分析
- [BZOJ1037] [ZJOI2008] 生日聚会Party - 高维dp
- Linux 下wifi 驱动开发(二)—— WiFi模块浅析