bzoj#P3490. Pa2011 Laser Pool
Pa2011 Laser Pool
题目描述
在一个 的网格(左下角为 ,右上角为 )里有一个小球(可以视为一个点),其中横向和纵向都有一些光线, 次询问,每次给出小球的初始位置,方向,速度和运动时间(具体方式见输入格式),求出小球触碰光线的次数,如果碰到交点只算一次。
当小球触碰到边界时,会发生反弹,也就是说,假设当前每秒 坐标增加 , 增加 ,如果碰到上下边界,则 变为 ,如果碰到左右边界,将 变为 ,如果仍不理解可以见样例解释的图片。
输入格式
第一行两个整数 ,表示网格的行数和列数。
接下来一行一个长为 的 01 串,如果第 个数为 ,则表示这一行有光线,否则表示没有。
接下来一行一个长为 的 01 串,如果第 个数为 ,则表示这一列有光线,否则表示没有。
接下来一行一个数 ,表示询问次数。
下面 行,每五个整数 表示小球初始时在 ,每秒 增加 , 坐标增加 ,总共运动 秒。保证 均为 或 。
输出格式
对于每一次询问,输出一行一个数,表示小球触碰光线的次数。
样例输入
4 6
1010
010110
1
5 2 1 1 8
样例输出
6
说明/提示
样例如图:
对于全部数据,保证 $1 \leq n, m \leq 10^5, 1 \leq q \leq 10^4, 1 \leq t \leq 10^9$, 保证球的初始位置在网格内且不在边界上, 均为 或 .