A6240 | 「POI2010」灯 Lamp
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
**译自 POI 2010 Stage 3. Day 1「[Lamp](https://szkopul.edu.pl/problemset/problem/WXVRycanis3d1h5p63YZqYKs/site/?key=statement)」**
在夜深人静的夜晚里,Bitratio 打开了 Byteasar 所在建筑物门口的灯。灯发出的强光导致 Byteasar 无法睡觉。尽管灯没有直接照在 Byteasar 的窗户上,却通过其他的窗户反射进入了 Byteasar 的卧室。Byteasar 由于无法睡觉而感到烦躁。他很好奇他的邻居是否也受到了同样的干扰,于是他来向你求助。你很了解他,因此你清楚地明白,在写出程序并解出这个问题之前你也无法入眠。
Byteasar 住在建筑物 B 里,有 $n$ 个窗户。灯在这个建筑物最下方的一个墙上。在建筑物 $B$ 的对面恰好 $10$ 米有另一个建筑物 C,且这个建筑物的墙与 B 建筑物的墙平行。
灯光的传播方式与物理学定律一样,遇到窗户时会发生反射。灯光的反射满足反射定律,即入射角等于出射角。
我们以如下方式定义两个建筑物的墙的坐标系统。两个建筑物的 X 轴都是水平的,而 Y 轴都是竖直的。两堵墙的坐标轴方向是相同的,且两堵墙上的 $(0,0)$ 坐标恰好面对面。每一个窗户用坐标系中一个四条边与坐标轴平行的矩形表示。一条光线只在窗户的内部被反射,在窗户的边界上会被吸收。光源在 B 建筑物的原点上,保证该点不在任何一个窗户的边界或内部。
在夜深人静的夜晚里,Bitratio 打开了 Byteasar 所在建筑物门口的灯。灯发出的强光导致 Byteasar 无法睡觉。尽管灯没有直接照在 Byteasar 的窗户上,却通过其他的窗户反射进入了 Byteasar 的卧室。Byteasar 由于无法睡觉而感到烦躁。他很好奇他的邻居是否也受到了同样的干扰,于是他来向你求助。你很了解他,因此你清楚地明白,在写出程序并解出这个问题之前你也无法入眠。
Byteasar 住在建筑物 B 里,有 $n$ 个窗户。灯在这个建筑物最下方的一个墙上。在建筑物 $B$ 的对面恰好 $10$ 米有另一个建筑物 C,且这个建筑物的墙与 B 建筑物的墙平行。
灯光的传播方式与物理学定律一样,遇到窗户时会发生反射。灯光的反射满足反射定律,即入射角等于出射角。
我们以如下方式定义两个建筑物的墙的坐标系统。两个建筑物的 X 轴都是水平的,而 Y 轴都是竖直的。两堵墙的坐标轴方向是相同的,且两堵墙上的 $(0,0)$ 坐标恰好面对面。每一个窗户用坐标系中一个四条边与坐标轴平行的矩形表示。一条光线只在窗户的内部被反射,在窗户的边界上会被吸收。光源在 B 建筑物的原点上,保证该点不在任何一个窗户的边界或内部。
输入格式
第一行有两个整数 $n,m$ ,分别表示第一个建筑物和第二个建筑物的窗口个数。
接下来 $n$ 行表示 B 建筑的窗户。第 $(i+1) (1 \le i \le n)$ 行含有四个整数 $x_{1,i}, y_{1,i}, x_{2,i}, y_{2,i} $ ,用空格分隔,表示 B 建筑的第 $i$ 个窗口是一个矩形,且其左下角坐标为 $x_{1,i}, y_{1,i}$ ,右上角坐标为 $x_{2,i}, y_{2,i}$ 。
接下来 $m$ 行以相同格式表示 C 建筑的窗户。
接下来 $n$ 行表示 B 建筑的窗户。第 $(i+1) (1 \le i \le n)$ 行含有四个整数 $x_{1,i}, y_{1,i}, x_{2,i}, y_{2,i} $ ,用空格分隔,表示 B 建筑的第 $i$ 个窗口是一个矩形,且其左下角坐标为 $x_{1,i}, y_{1,i}$ ,右上角坐标为 $x_{2,i}, y_{2,i}$ 。
接下来 $m$ 行以相同格式表示 C 建筑的窗户。
输出格式
第一行输出 B 建筑中受到光线照射的窗口数量。因为 Byteasar 正在受到强光照射,你可以认为至少有一个这样的窗口。
第二行按从小到大的顺序输出 B 建筑受到光线照射的窗口编号,用空格分隔。
第二行按从小到大的顺序输出 B 建筑受到光线照射的窗口编号,用空格分隔。
输入输出样例
输入 #1
3 3 -1 2 1 4 -1 5 1 7 -3 8 -2 20 -1 1 1 2 -1 4 1 5 -1 7 1 10
输出 #1
2 1 2
对于 $100\%$ 的数据, $1\le n,m\le 600,-1000 \le x_{1,i} \lt x_{2,i} \le 1000,0 \le y_{1,i} < y_{2,i} \le 1000$ 。
Translated by vincent163
Translated by vincent163
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?