题目名称 233. [POI 1998] 窗户
输入输出 okn.in/out
难度等级 ★★☆
时间限制 2000 ms (2 s)
内存限制 64 MiB
测试数据 16
题目来源 GravatarBYVoid 于2008-12-04加入
开放分组 全部用户
提交状态
分类标签
图论 并查集 离散化
分享题解
通过:1, 提交:4, 通过率:25%
GravatarBYVoid 100 2.792 s 51.93 MiB C++
Gravatarzhanghuaisha 0 0.003 s 11.76 MiB C++
Gravatarzhanghuaisha 0 0.004 s 11.76 MiB C++
Gravatarzhanghuaisha 0 0.004 s 11.76 MiB C++
关于 窗户 的近10条评论(全部评论)
四年以后的沙发
Gravatarcb
2020-06-27 14:01 2楼
233题沙发留念
GravatarSPA
2016-02-17 18:52 1楼

233. [POI 1998] 窗户

★★☆   输入文件:okn.in   输出文件:okn.out   简单对比
时间限制:2 s   内存限制:64 MiB

我们在笛卡尔坐标系中有一个多边形,多边形的边平行于坐标轴,每两条相邻的边是垂直正交的并且每一个顶点的坐标都是整数。我们还给出一个边也平行于坐标轴的矩形窗户。多边形的内部被涂成红色,那么有几个分开的红色部分将在窗户中被看到。

例子:

如下图:

Image:Okn.png

有两个红色的部分将被通过窗子看到。

任务:

写一个程序

  • 从文件中读入窗户与多边形的描述。

  • 计算能通过窗户看到的分开的红色部分的个数。

  • 将结果写入文件。

输入:

在文件的第一行有四个整数x1,y1,x2,y2 (0<=x1,y1,x2,y2<=10000),有一个空格隔开,(x1,y1)是窗户左上角的坐标,(x2,y2)是窗户右下角的坐标。 下一行有一个整数n(4<=n<=5000)表示多边形的顶点数。以下n行以逆时针的顺序给出了多边形的顶点坐标,也就是说当我们沿着给出的 多边形的边走时,多边形的内部在外部的左边。每一行包括两个整数x y(0<=x,y<=10000),有一个空格隔开,第(i+2)行表示多边形的第i个顶点。

输出:

在文件的第一行有且仅有一个整数表示能够通过窗户看到的分开的红色区域的个数。

输入样例:

0 5 8 1
24
0 0
4 0
4 2
5 2
5 0
7 0
7 3
3 3
3 2
2 2
2 4
1 4
1 5
2 5
2 6
3 6
3 5
4 5
4 6
5 6
5 4
7 4
7 7
0 7

输出样例:

2