没参加的2015百度之星——数矩形
来源:互联网 发布:三挫仑在淘宝上叫什么 编辑:程序博客网 时间:2024/06/03 19:39
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5258
Problem Description
小度熊喜欢玩木棒。一天他在玩木棒的时候,发现一些木棒会形成长方形。小度熊可能是处女座吧,他只会将木棒横竖摆放,这样会形成很多长方形。现在给你一些横竖摆放的木棒,请你帮小度熊数一数形成了多少个长方形。
为了简化题目,一个木棒的端点不会在另一个木棒上,也就是说,木棒的端点不会在长方形上。
为了简化题目,一个木棒的端点不会在另一个木棒上,也就是说,木棒的端点不会在长方形上。
Input
第一行一个整数T,表示T组数据,不超过100组。
每组数据中,第一行是n,代表有多少个木棒,n不会超过25。接下来n行,每行4个整数x1,y1,x2,y2 ,代表木棒的坐标,绝对值不超过1000。
所有的木棒都是横竖摆放的,也就是说x1=x2 或者y1=y2 ,没有长为0的木棒。
每组数据中,第一行是n,代表有多少个木棒,n不会超过25。接下来n行,每行4个整数
所有的木棒都是横竖摆放的,也就是说
Output
对于每组测试数据,先输出一行
Case #i:
然后输出一个整数,代表有多少个长方形。
Case #i:
然后输出一个整数,代表有多少个长方形。
Sample Input
243 0 3 34 0 4 32 1 5 12 2 5 243 0 3 34 0 4 32 1 5 12 2 -5 2
Sample Output
Case #1:1Case #2:0
Source
2015年百度之星程序设计大赛 - 复赛
暴力枚举,注意判断方式!
#include<iostream>#include<cstdio>#include<vector>using namespace std;struct node{ int x1,y1,x2,y2; void in(){ cin>>x1>>y1>>x2>>y2; if(x1>x2)swap(x1,x2); if(y1>y2)swap(y1,y2); }};vector <node> px;vector <node> py;bool jx(int i,int j){ if(px[i].x1==px[j].x1)return false; if(px[i].y1>=px[j].y2-2)return false; if(px[i].y2<=px[j].y1+2)return false; return true;}bool jy(int i,int j){ if(py[i].y1==py[j].y1)return false; if(py[i].x1>=py[j].x2-2)return false; if(py[i].x2<=py[j].x1+2)return false; return true;}bool judge(node a,node b,node c,node d){ int x1=max(c.x1,d.x1); int x2=min(c.x2,d.x2); int y1=max(a.y1,b.y1); int y2=min(a.y2,b.y2); if(x1<a.x1 && a.x2<x2 && x1<b.x1 && b.x2<x2) if(y1<c.y1 && c.y2<y2 && y1<d.y1 && d.y2<y2 ) return true; return false;}int main(){ int T;cin>>T; int CA=1; while(T--){ int n;cin>>n; px.clear(); py.clear(); for(int i=1;i<=n;i++){ node tmp;tmp.in(); if(tmp.x1==tmp.x2)px.push_back(tmp); else py.push_back(tmp); } cout<<"Case #"<<CA++<<":"<<endl; int lenx=px.size(); int leny=py.size(); int ans=0; for(int i=0;i<lenx;i++){ for(int j=i+1;j<lenx;j++){ if(jx(i,j)==false)continue; for(int k=0;k<leny;k++){ for(int t=k+1;t<leny;t++){ if(jy(k,t)==false)continue; bool ok=judge(px[i],px[j],py[k],py[t]); if(ok)ans++; } } } } cout<<ans<<endl; } return 0;}
0 0
- 没参加的2015百度之星——数矩形
- 没参加的2015百度之星——找连续数
- 第一次参加百度之星比赛的第一题
- 参加百度之星程序设计大赛有感
- 2015年百度之星初赛(1) --- F 矩形面积
- 2015百度之星初赛(一) 矩形面积 1006【最小矩形覆盖】
- 百度之星 矩形面积(最小矩形覆盖)
- HDU 5251 矩形面积(二维凸包旋转卡壳最小矩形覆盖问题) --2015百度之星题目
- 高中同学聚会,没能参加的聚会
- 第一次参加面试,理所应当的没成功
- 百度之星初赛1006(计算几何:能包含凸包的最小矩形面积)
- BC 2015年百度之星程序设计大赛 - 初赛(1)(矩形面积-旋转卡壳)
- HDU 5251 矩形面积(百度之星初赛 #1 1006)
- 百度 求矩形的个数
- 百度之星 2015 初赛(1) 1002 找连续数
- 百度之星 2015 初赛(1) 1002 找连续数
- 百度之星 2015 复赛 1001 (数长方形)
- HDU5258(百度之星复赛1001)——数长方形(暴力)
- 黑马程序员——Java学习总结:IO常用方法练习
- 【linux】ubuntu14.04安装apache-maven-3.3.3
- openwrt的结构 与 编写 HelloWorld程序
- JAVA中的使用Filter过滤器设置字符集
- JS实现HTML地图定位
- 没参加的2015百度之星——数矩形
- hdoj1021Fibonacci Again
- 多渠道批量打包
- 237 Delete Node in a Linked List
- IOS - 注册页面
- 设立尾指针的单循环链表的表示和实现
- C++容器&数据结构
- OC_NSString
- 数据库之 truncate 、delete 、drop之区别