烧饼重叠问题

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 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 烧饼重叠问题相关推荐

  1. 南邮 OJ 1076 机器狗组装费用

    机器狗组装费用 时间限制(普通/Java) :  1500 MS/ 4500 MS          运行内存限制 : 65536 KByte 总提交 : 513            测试通过 : ...

  2. 南邮 OJ 1668 撼地神牛

    撼地神牛 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 780            测试通过 : 77 比 ...

  3. 南邮 OJ 1987 集训队选拔

    集训队选拔 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 823            测试通过 : 303 ...

  4. 南邮 OJ 1128 An Industrial Spy

    An Industrial Spy 时间限制(普通/Java) :  10000 MS/ 30000 MS          运行内存限制 : 65536 KByte 总提交 : 38         ...

  5. 南邮 OJ 2001 水獭看动漫

    水獭看动漫 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 103            测试通过 : 31 ...

  6. 南邮 OJ 2043 有才华的罗老师

    有才华的罗老师 时间限制(普通/Java) :  2000 MS/ 6000 MS          运行内存限制 : 65536 KByte 总提交 : 60            测试通过 : 3 ...

  7. 南邮 OJ 1652 翻转棋

    翻转棋 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 41            测试通过 : 20  比赛 ...

  8. 南邮 OJ 1176 高斯求和

    高斯求和 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 3327            测试通过 : 568 ...

  9. 南邮 OJ 1446 嘉娃的难题

    嘉娃的难题 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 127            测试通过 : 43 ...

最新文章

  1. 一:c#基本语法(2)(老田学习笔记)
  2. Word:段前空行不显示问题解决办法
  3. python读取excel送到网页_python怎么读取excel!怎么用python将excel数据写入网页中
  4. 在矩阵上跑最小生成树
  5. Win7小工具“概念时钟”,v2.1.8.6
  6. HDU2161 Primes
  7. (转)MTK_面试的几个主要问题 必看
  8. [Python] np.ones_like(ndarray)和np.zeros_like(ndarray)
  9. Downie 4搭配Permute 3,一个完整的视频下载处理流
  10. [hiho1160] 攻城略地
  11. SQL Server2008数据库置疑修复办法
  12. Kaptcha简单使用
  13. 计算机产业现状及未来,2020工业计算机行业现状及未来前景分析
  14. 华为云Centos7搭建hadoop集群一:云服务器准备
  15. 句子反转(小米2017秋招真题)
  16. 计算机上面的字体怎么应用,字魂字体怎么放PS里面用 应用到PS的方法
  17. phaser3场景中的图片缩放scale
  18. ldap服务器配置信息错误,ldap服务器概念配置看这一文就够了!
  19. 张艾迪(创始人):视觉计算极简主义的设计
  20. 安科瑞ARD3M电动机保护器在红叶中的实际应用

热门文章

  1. AutoJs学习-QQ自动点赞及打卡
  2. python汇率换算程序_Python第六课 汇率兑换4.0
  3. 基于Kinect Azure的多相机数据采集(二)
  4. 【视频笔记】微信小程序
  5. 广州医保上线移动支付:暂只针对普通门诊
  6. appinventor跑酷游戏_基于APPInventor的一款益智游戏的设计与实现
  7. Qt error: ‘class Ui::XXXXX‘ has no member named ‘XXXXX‘
  8. java基础基础理论知识归纳(一)
  9. 带着问题学 Kubernetes 抽象对象 Service 服务间调用
  10. python红楼梦人物统计_Python分析红楼梦,宝玉和十二钗的人物关系