bzoj#P3490. Pa2011 Laser Pool

Pa2011 Laser Pool

题目描述

在一个 n×mn\times m 的网格(左下角为 (1,1)(1,1),右上角为 (m,n)(m,n))里有一个小球(可以视为一个点),其中横向和纵向都有一些光线,qq 次询问,每次给出小球的初始位置,方向,速度和运动时间(具体方式见输入格式),求出小球触碰光线的次数,如果碰到交点只算一次。

当小球触碰到边界时,会发生反弹,也就是说,假设当前每秒 xx 坐标增加 vxvxyy 增加 vyvy,如果碰到上下边界,则 vyvy 变为 vy-vy,如果碰到左右边界,将 vxvx 变为 vx-vx,如果仍不理解可以见样例解释的图片。

输入格式

第一行两个整数 n,mn,m,表示网格的行数和列数。

接下来一行一个长为 nn 的 01 串,如果第 ii 个数为 11,则表示这一行有光线,否则表示没有。

接下来一行一个长为 mm 的 01 串,如果第 ii 个数为 11,则表示这一列有光线,否则表示没有。

接下来一行一个数 qq,表示询问次数。

下面 qq 行,每五个整数 x,y,vx,vy,tx,y,vx,vy,t 表示小球初始时在 (x,y)(x,y),每秒 xx 增加 vxvxyy 坐标增加 vyvy,总共运动 tt 秒。保证 vx,vyvx,vy 均为 111-1

输出格式

对于每一次询问,输出一行一个数,表示小球触碰光线的次数。

样例输入

4 6
1010
010110
1
5 2 1 1 8

样例输出

6

说明/提示

样例如图: pic1

对于全部数据,保证 $1 \leq n, m \leq 10^5, 1 \leq q \leq 10^4, 1 \leq t \leq 10^9$, 保证球的初始位置在网格内且不在边界上, vx,vyvx, vy 均为 111-1.