洛谷 P2449 [SDOI2005]矩形
2017-02-21 16:57
288 查看
题目描述
现在我们在一个平面上画了n个矩形。每一个矩形的两边都与坐标轴相平行,且矩形定点的坐标均为整数。现我们定义满足如下性质的图形为一个块:
1.每一个矩形都是一个块;
2.如果两个块有一段公共的部分,那么这两个块就会形成一个新的块,否则这两个块就是不同的。
示例:
图1中的矩形形成了两个不同的块。图2中的矩形形成了一个块。
任务:
请写一个程序:
1.从文本文件PRO.IN中读入各个矩形的顶点坐标;
2.找出这些矩形中不同的块的数目;
3.把结果输出到文本文件PRO.OUT中。
输入输出格式
输入格式:
文本文件PRO.IN的第一行包括一个整数n,1 n 7000,为矩形的数目。以下的n行为矩形顶点的坐标。每一个矩形都是用四个整数来描述的:左下角的x坐标、左下角的y坐标、右上角的x坐标和右上角的y坐标。所有的坐标都是不大于10000的非负整数。
输出格式:
在文本文件PRO.OUT中输出唯一的一个整数——这些矩形所形成的不同的块的数目。
输入输出样例
输入样例#1:
9
0 3 2 6
4 5 5 7
4 2 6 4
2 0 3 2
5 3 6 4
3 2 5 3
1 4 4 7
0 0 1 4
0 0 4 1
输出样例#1:
2
并查集:
1.判断两两矩形是否有重合部分。
2.有就做并查集,合并成一个集合。
3.for一次判断有多少个集合。
时间复杂度:O(n^2)
现在我们在一个平面上画了n个矩形。每一个矩形的两边都与坐标轴相平行,且矩形定点的坐标均为整数。现我们定义满足如下性质的图形为一个块:
1.每一个矩形都是一个块;
2.如果两个块有一段公共的部分,那么这两个块就会形成一个新的块,否则这两个块就是不同的。
示例:
图1中的矩形形成了两个不同的块。图2中的矩形形成了一个块。
任务:
请写一个程序:
1.从文本文件PRO.IN中读入各个矩形的顶点坐标;
2.找出这些矩形中不同的块的数目;
3.把结果输出到文本文件PRO.OUT中。
输入输出格式
输入格式:
文本文件PRO.IN的第一行包括一个整数n,1 n 7000,为矩形的数目。以下的n行为矩形顶点的坐标。每一个矩形都是用四个整数来描述的:左下角的x坐标、左下角的y坐标、右上角的x坐标和右上角的y坐标。所有的坐标都是不大于10000的非负整数。
输出格式:
在文本文件PRO.OUT中输出唯一的一个整数——这些矩形所形成的不同的块的数目。
输入输出样例
输入样例#1:
9
0 3 2 6
4 5 5 7
4 2 6 4
2 0 3 2
5 3 6 4
3 2 5 3
1 4 4 7
0 0 1 4
0 0 4 1
输出样例#1:
2
并查集:
1.判断两两矩形是否有重合部分。
2.有就做并查集,合并成一个集合。
3.for一次判断有多少个集合。
时间复杂度:O(n^2)
var f,x,y,p,q:array [0..7001] of longint; i,j,n,ans,k,l:longint; function find(c:longint):longint; begin if f[c]=c then exit(c); f[c]:=find(f[c]); exit(f[c]); end; begin readln(n); for i:=1 to n do f[i]:=i; for i:=1 to n do begin readln(x[i],y[i],p[i],q[i]); for j:=1 to i-1 do if (p[i]>=x[j]) and (p[j]>=x[i]) and ((q[i]>=y[j]) and (q[j]>=y[i])) and (((p[i]<>x[j]) and (p[j]<>x[i])) or ((q[i]<>y[j]) and (q[j]<>y[i]))) then if find(i)<>find(j) then f[find(i)]:=find(j); end; for i:=1 to n do if f[i]=i then inc(ans); writeln(ans); end.
相关文章推荐
- 洛谷P2449 [SDOI2005]矩形
- 洛谷 P2434 [SDOI2005]区间
- 洛谷 P2335 [SDOI2005]位图
- 洛谷P1463 [SDOI2005]反素数ant
- 洛谷 P2434 [SDOI2005]区间
- 洛谷P2434 [SDOI2005]区间
- 洛谷 P1463 [SDOI2005]反素数ant && codevs2912反素数
- 洛谷 P1463 [SDOI2005]反素数ant
- 洛谷 P2439 [SDOI2005]阶梯教室设备利用
- 洛谷 P2335 [SDOI2005]位图 [DP]
- 洛谷 P2451 [SDOI2005]遗传代码 [并查集]
- 暴力-洛谷P1463 [SDOI2005]反素数ant
- 【洛谷2335】【SDOI2005】位图
- 洛谷 P2452 [SDOI2005]屠龙传说-屠龙枪卷 [计算几何]
- 洛谷 P2335 [SDOI2005]位图
- 【洛谷2439】【SDOI2005】阶梯教室设备利用
- 洛谷 P1463 [SDOI2005]反素数ant && P1820 寻找AP数
- 洛谷 p1403 [AHOI2005]约数研究
- [BZOJ1951][SDOI2005]古代猪文(数论好题)
- P2434 [SDOI2005]区间