poj 1262 地板覆盖问题
来源:互联网 发布:淘宝详情页怎么做好 编辑:程序博客网 时间:2024/04/29 02:39
Problem
一个地板被若干砖所覆盖。现在请你判断,这些砖是否恰好不重复,不遗漏的恰好覆盖了整个地板。
Input
第一行为一个整数N,表示有N组测试数据。 每组测试数据第一行是两个数l, w,表示地板的长和宽(不超过40000)。 第二行是一个数t,表示有t块砖(1<=t<=400)。 下面t行每行是四个数,xl,yl,xh,yh,其中(xl,yl)是砖的左下角坐标,(xh,yh)是砖的右上角坐标。
Output
每组数据输出包含一行。 如果输入中砖有交叉覆盖,则输出”NONDISJOINT” 否则如果有砖超出了地板,则输出”NONCONTAINED” 否则如果有部分地板没有被覆盖,则输 出”NONCOVERING” 否则输出”OK”
题解
本题的关键盘是判断是否有交叉覆盖,判断标准如下:
如果不覆盖,C在A的右上角或B在A的左下角即可。
r.left r.right r.up r.down 表示一个矩形r的左边\右边\上边\下边四个判断(r1.left < r2.right) and (r2.left < r1.right) and (r1.up < r2.down) and (r2.up < r1.down)
代码
var nm,x,y,n,sum:longint; x1,y1,x2,y2,s:array [0..401] of longint;function max(o,p:longint):longint;begin if o>p then exit(o); exit(p);end;procedure init;var i,j,l,t,l1,l2:longint; f1,f2,f3:boolean;begin for l:=1 to nm do begin f1:=false; f2:=false; f3:=false; sum:=0; readln(x,y); readln(n); t:=max(x,y); for i:=1 to n do begin readln(x1[i],y1[i],x2[i],y2[i]); l1:=abs(x1[i]-x2[i]); l2:=abs(y1[i]-y2[i]); s[i]:=l1*l2; sum:=sum+s[i]; if (x1[i]<0) or (x2[i]<0) or (y1[i]<0) or (y2[i]<0) then f2:=true; if (x1[i]>t) or (x2[i]>t) or (y1[i]>t) or (y2[i]>t) then f2:=true; end; if sum<x*y then f3:=true; for i:=1 to n do begin if f1 then break; for j:=i+1 to n do if (x1[j]>=x2[i]) or (x2[j]<=x1[i]) or (y1[j]>=y2[i]) or (y2[j]<=y1[i]) then continue else begin f1:=true; break; end; end; if f1 then writeln('NONDISJOINT') else if f2 then writeln('NONCONTAINED') else if f3 then writeln('NONCOVERING') else writeln('OK'); end;end;begin readln(nm); init;end.
1 0
- poj 1262 地板覆盖问题
- 瓷砖覆盖地板问题
- 瓷砖覆盖地板问题
- poj 2411 & 编程之美 4.2 瓷砖覆盖地板
- poj 2411 编程之美-瓷砖覆盖地板
- 编程之美 4.2 瓷砖覆盖地板 扩展问题
- 瓷砖覆盖地板
- 瓷砖覆盖地板
- 瓷砖覆盖地板
- 瓷砖覆盖地板
- 状态压缩动态规划 POJ 2411 (编程之美-瓷砖覆盖地板)
- 状态压缩动态规划 POJ 2411 (编程之美-瓷砖覆盖地板)
- [编程之美] 瓷砖覆盖地板
- 编程之美4.2 瓷砖覆盖地板
- 读书笔记之编程之美 - 4.2 瓷砖覆盖地板
- Mondriaan's Dream 瓷砖覆盖地板 编程之美
- POJ-2495(棋盘覆盖问题)
- poj 2376 最小区间覆盖问题
- linux kernel makefile中的那些小伙伴们
- Java中int和byte的相互转换
- 计算几何知识专题
- 程序员要不要在家写代码?
- Android ORM 框架之 Android中ORMLite应用基础
- poj 1262 地板覆盖问题
- 计算面积_ssl1715_计算几何
- 框架学习之一认识框架
- Java工具代码:输入验证正则检查
- Android Studio 设置 sublime 主题 字数124 阅读2900 评论1 喜欢6 看习惯sublime主题的孩子们在使用android studio 的时候,习惯于去设置相应的主题,
- EL表达式问题
- 欢迎使用CSDN-markdown编辑器
- 大话数据结构之——时间复杂度O
- 【设计模式】行为模式之State状态