南邮 OJ 1484 烧饼重叠问题
烧饼重叠问题
总提交 : 87 测试通过 : 12
比赛描述
南邮三牌楼食堂继推出“佳逗”牌葱花大饼后,为庆祝2010级本科生、研究生入学,又推出“珍逗”牌芝麻烧饼,这种烧饼规则正四边形形状,大小各异。在制作烧饼时,首先要准备面粉、水、食用油、食盐等原料,然后将这些原料混合揉成面团,在面板上擀成规则正四边形的面片、面皮,用面皮把面卷包好,成为烧饼胚。最后铺芝麻,平底锅铺油,用中火或小火两面烙饼,直到两面金黄为止。
食堂师傅在制作烧饼过程中,多个烧饼胚同时放在平底锅(规则正四边形)上进行烤烙,有时烧饼胚摆放不好就会粘在一起。他们请你编程分析烧饼胚边界,判断这些烧饼是否重叠(最终会粘在一起)。为使问题简化,假设平底锅在一个平面上,分成若干单元块,每个单元块标有两个方向的坐标,其位置用左下角单元的坐标和右上角单元的坐标表示,(0,0)表示平底锅最左下角单元,如图1所示。请注意,如果一个烧饼包含另一个烧饼的一部分,则认为两个烧饼重叠;只有相邻的边或点,两个烧饼不重叠。
输入
输入首先给出同时烤烙的烧饼胚数量C,接着给出C个烧饼位置。
每一个烧饼位置用1行表示,格式为x1 y1 x2 y2,其中(x1,y1)表示烧饼左下角位置,(x2,y2) 表示烧饼右上角位置。
1≤C≤10,0≤x1, y1, x2, y2≤19。
输出
如果同时烤烙的烧饼有重叠,则输出Overlap;没有重叠,则输出No Overlap。
样例输入
3
1 1 2 2
2 5 4 7
4 2 7 3
2
1 1 2 2
2 2 5 3
样例输出
No Overlap
Overlap
题目来源
2010华为杯南邮校园程序设计大赛
/* Wrong Answer at Test 2#include<iostream>
#include<set>
using namespace std;struct line{int x1,x2,y;bool isUp;
};bool operator<(const line &l1, const line &l2){if(l1.y != l2.y){return l1.y < l2.y;}return l1.isUp > l2.isUp; // 是下边缘的话 排在前面
}int main(){int C,x1,y1,x2,y2,count;line l;bool overlap;set<int> xs;multiset<line> ls;set<int>::iterator it1,it2;multiset<line>::iterator it;while(scanf("%d",&C)==1){xs.clear();ls.clear();while(C--){scanf("%d%d%d%d",&x1,&y1,&x2,&y2);xs.insert(x1);xs.insert(x2);l.x1 = x1;l.x2 = x2;l.y = y1;l.isUp = 0;ls.insert(l);l.y = y2;l.isUp = 1;ls.insert(l);}overlap = 0;it1=it2=xs.begin();it2++;while(!overlap && it2!=xs.end() ){count = 0;for(it=ls.begin(); !overlap && it!=ls.end(); ++it){if(it->x1 <= *it1 && it->x2 >= *it2){if(it->isUp){--count;}else{if(++count>1){overlap = 1;break;}}}}++it1;++it2;}if(overlap){printf("Overlap\n");}else{printf("No Overlap\n");}}
}
*/#include<iostream>
#include<set>
#define MAX_N 20
using namespace std;int a[MAX_N][MAX_N];int main(){int C,x1,x2,y1,y2,i,j;bool overlap;while(scanf("%d",&C)==1){overlap = 0;memset(a,0,sizeof(a));while(C--){scanf("%d%d%d%d",&x1,&y1,&x2,&y2);if(!overlap){for(i=x1;!overlap && i<=x2;i++){for(j=y1;!overlap && j<=y2;j++){if(++a[i][j]>1){overlap = 1;break;}}}}}if(overlap){printf("Overlap\n");}else{printf("No Overlap\n");}}
}
南邮 OJ 1484 烧饼重叠问题相关推荐
- 南邮 OJ 1076 机器狗组装费用
机器狗组装费用 时间限制(普通/Java) : 1500 MS/ 4500 MS 运行内存限制 : 65536 KByte 总提交 : 513 测试通过 : ...
- 南邮 OJ 1668 撼地神牛
撼地神牛 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte 总提交 : 780 测试通过 : 77 比 ...
- 南邮 OJ 1987 集训队选拔
集训队选拔 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte 总提交 : 823 测试通过 : 303 ...
- 南邮 OJ 1128 An Industrial Spy
An Industrial Spy 时间限制(普通/Java) : 10000 MS/ 30000 MS 运行内存限制 : 65536 KByte 总提交 : 38 ...
- 南邮 OJ 2001 水獭看动漫
水獭看动漫 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte 总提交 : 103 测试通过 : 31 ...
- 南邮 OJ 2043 有才华的罗老师
有才华的罗老师 时间限制(普通/Java) : 2000 MS/ 6000 MS 运行内存限制 : 65536 KByte 总提交 : 60 测试通过 : 3 ...
- 南邮 OJ 1652 翻转棋
翻转棋 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte 总提交 : 41 测试通过 : 20 比赛 ...
- 南邮 OJ 1176 高斯求和
高斯求和 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte 总提交 : 3327 测试通过 : 568 ...
- 南邮 OJ 1446 嘉娃的难题
嘉娃的难题 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte 总提交 : 127 测试通过 : 43 ...
最新文章
- 一:c#基本语法(2)(老田学习笔记)
- Word:段前空行不显示问题解决办法
- python读取excel送到网页_python怎么读取excel!怎么用python将excel数据写入网页中
- 在矩阵上跑最小生成树
- Win7小工具“概念时钟”,v2.1.8.6
- HDU2161 Primes
- (转)MTK_面试的几个主要问题 必看
- [Python] np.ones_like(ndarray)和np.zeros_like(ndarray)
- Downie 4搭配Permute 3,一个完整的视频下载处理流
- [hiho1160] 攻城略地
- SQL Server2008数据库置疑修复办法
- Kaptcha简单使用
- 计算机产业现状及未来,2020工业计算机行业现状及未来前景分析
- 华为云Centos7搭建hadoop集群一:云服务器准备
- 句子反转(小米2017秋招真题)
- 计算机上面的字体怎么应用,字魂字体怎么放PS里面用 应用到PS的方法
- phaser3场景中的图片缩放scale
- ldap服务器配置信息错误,ldap服务器概念配置看这一文就够了!
- 张艾迪(创始人):视觉计算极简主义的设计
- 安科瑞ARD3M电动机保护器在红叶中的实际应用
热门文章
- AutoJs学习-QQ自动点赞及打卡
- python汇率换算程序_Python第六课 汇率兑换4.0
- 基于Kinect Azure的多相机数据采集(二)
- 【视频笔记】微信小程序
- 广州医保上线移动支付:暂只针对普通门诊
- appinventor跑酷游戏_基于APPInventor的一款益智游戏的设计与实现
- Qt error: ‘class Ui::XXXXX‘ has no member named ‘XXXXX‘
- java基础基础理论知识归纳(一)
- 带着问题学 Kubernetes 抽象对象 Service 服务间调用
- python红楼梦人物统计_Python分析红楼梦,宝玉和十二钗的人物关系