【问题描述】
小蓝在 L 市开出租车。
L 市的规划很规整,所有的路都是正东西向或者正南北向的,道路都可以
看成直线段。东西向的道路互相平行,南北向的道路互相平行,任何一条东西
向道路垂直于任何一条南北向道路。
从北到南一共有 n 条东西向道路,依次标号为 H 1 , H 2 , ···, H n 。从西到东
一共有 m 条南北向的道路,依次标号为 S 1 , S 2 , ···, S m 。
每条道路都有足够长,每一条东西向道路和每一条南北向道路都相交,H i
与 S j 的交叉路口记为 (i, j)。
从 H 1 和 S 1 的交叉路口 (1,1) 开始,向南遇到的路口与 (1,1) 的距离分别
是 h 1 , h 2 , ···, h n−1 ,向东遇到路口与 (1,1) 的距离分别是 w 1 , w 2 , ···, w m−1 。
道路的每个路口都有一个红绿灯。
时刻 0 的时候,南北向绿灯亮,东西向红灯亮,南北向的绿灯会持续一段
时间(每个路口不同),然后南北向变成红灯,东西向变成绿灯,持续一段时间
后,再变成南北向绿灯,东西向红灯。
已知路口 (i, j) 的南北向绿灯每次持续的时间为 g ij ,东西向的绿灯每次持
续的时间为 r ij ,红绿灯的变换时间忽略。
当一辆车走到路口时,如果是绿灯,可以直行、左转或右转。如果是红灯,
可以右转,不能直行或左转。如果到路口的时候刚好由红灯变为绿灯,则视为
看到绿灯,如果刚好由绿灯变为红灯,则视为看到红灯。
每段道路都是双向道路,道路中间有隔离栏杆,在道路中间不能掉头,只
能在红绿灯路口掉头。掉头时不管是红灯还是绿灯都可以直接掉头。掉头的时
间可以忽略。
小蓝时刻 0 从家出发。今天,他接到了 q 个预约的订单,他打算按照订单
的顺序依次完成这些订单,就回家休息。中途小蓝不准备再拉其他乘客。
小蓝的家在两个路口的中点,小蓝喜欢用 x 1 , y 1 , x 2 , y 2 来表示自己家的位
置,即路口 (x 1 ,y 1 ) 到路口 (x 2 ,y 2 ) 之间的道路中点的右侧,保证两个路口相邻
(中间没有其他路口)。请注意当两个路口交换位置时,表达的是路的不同两边,
路中间有栏杆,因此这两个位置实际要走比较远才能到达。
小蓝的订单也是从某两个路口间的中点出发,到某两个路口间的中点结束。
小蓝必须按照给定的顺序处理订单,而且一个时刻只能处理一个订单,不能图
省时间而同时接两位乘客,也不能插队完成后面的订单。
小蓝只对 L 市比较熟,因此他只会在给定的 n 条东西向道路和 m 条南北向
道路上行驶,而且不会驶出 H 1 , H n , S 1 , S m 这几条道路所确定的矩形区域(可
以到边界)。
小蓝行车速度一直为 1,乘客上下车的时间忽略不计。
请问,小蓝最早什么时候能完成所有订单回到家。
【输入格式】
输入第一行包含两个整数 n, m,表示东西向道路的数量和南北向道路的数
量。
第二行包含 n − 1 个整数 h 1 , h 2 , ···, h n−1 。
第三行包含 m − 1 个整数 w 1 , w 2 , ···, w m−1 。
接下来 n 行,每行 m 个整数,描述每个路口南北向绿灯的时间,其中的第
i 行第 j 列表示 g ij 。
接下来 n 行,每行 m 个整数,描述每个路口东西向绿灯的时间,其中的第
i 行第 j 列表示 r ij 。
接下来一行包含四个整数 x 1 , y 1 , x 2 , y 2 ,表示小蓝家的位置在路口 (x 1 ,y 1 )
到路口 (x 2 ,y 2 ) 之间的道路中点的右侧。
接下来一行包含一个整数 q,表示订单数量。
接下来 q 行,每行描述一个订单,其中第 i 行包含八个整数 x i1 , y i1 , x i2 , y i2 ,
x i3 , y i3 , x i4 , y i4 ,表示第 i 个订单的起点为路口 (x i1 ,y i1 ) 到路口 (x i2 ,y i2 ) 之间的道
路中点的右侧,第 i 个订单的终点为路口 (x i3 ,y i3 ) 到路口 (x i4 ,y i4 ) 之间的道路中
点的右侧。
【问题描述】
在平面内有一些矩形,它们的两条边都平行于坐标轴。
我们称一个点被某个矩形覆盖,是指这个点在矩形的内部或者边界上。
请问,被奇数个矩形覆盖和被偶数 (≥ 2) 个矩形覆盖的点的面积分别是多
少?
【输入格式】
输入的第一行包含一个整数 n,表示矩形的个数。
接下来 n 行描述这些矩形,其中第 i 行包含四个整数 l i , b i , r i , t i ,表示矩形
的两个对角坐标分别为 (l i ,b i ), (r i ,t i )。
【输出格式】
输出两行。
第一行包含一个整数,表示被奇数个矩形覆盖的点的面积。
第二行包含一个整数,表示被偶数 (≥ 2) 个矩形覆盖的点的面积。
【样例输入】
3
1 1 3 3
2 2 4 4
3 3 5 5
【样例输出】
8
2
【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ n ≤ 10, 0 ≤ l i < r i ≤ 100, 0 ≤ b i < t i ≤ 100。
对于 40% 的评测用例,1 ≤ n ≤ 1000, 0 ≤ l i < r i ≤ 100, 0 ≤ b i < t i ≤ 100。
对于 60% 的评测用例,1 ≤ n ≤ 10000, 0 ≤ l i < r i ≤ 1000, 0 ≤ b i < t i ≤ 1000。
对于 80% 的评测用例,1 ≤ n ≤ 100000, 0 ≤ l i < r i ≤ 100000, 0 ≤ b i < t i ≤
100000。
对于所有评测用例,1 ≤ n ≤ 100000, 0 ≤ l i < r i ≤ 10^9 , 0 ≤ b i < t i ≤ 10^9 。
J: 蓝跳跳
【问题描述】
小蓝制作了一个机器人,取名为蓝跳跳,因为这个机器人走路的时候基本
靠跳跃。
蓝跳跳可以跳着走,也可以掉头。蓝跳跳每步跳的距离都必须是整数,每
步可以跳不超过 k 的长度。由于蓝跳跳的平衡性设计得不太好,如果连续两次
都是跳跃,而且两次跳跃的距离都至少是 p,则蓝跳跳会摔倒,这是小蓝不愿
意看到的。
小蓝接到一个特别的任务,要在一个长为 L 舞台上展示蓝跳跳。小蓝要控
制蓝跳跳从舞台的左边走到右边,然后掉头,然后从右边走到左边,然后掉头,
然后再从左边走到右边,然后掉头,再从右边走到左边,然后掉头,如此往复。
为了让观者不至于太无趣,小蓝决定让蓝跳跳每次用不同的方式来走。小
蓝将蓝跳跳每一步跳的距离记录下来,按顺序排成一列,显然这一列数每个都
不超过 k 且和是 L。这样走一趟就会出来一列数。如果两列数的长度不同,或
者两列数中存在一个位置数值不同,就认为是不同的方案。
请问蓝跳跳在不摔倒的前提下,有多少种不同的方案从舞台一边走到另一
边。
【输入格式】
输入一行包含三个整数 k, p, L。
【输出格式】
输出一个整数,表示答案。答案可能很大,请输出答案除以 20201114 的余
数。
【样例输入】
3 2 5
【样例输出】
9
【样例说明】
蓝跳跳有以下 9 种跳法:
1. 1+1+1+1+1
2. 1+1+1+2
3. 1+1+2+1
4. 1+2+1+1
5. 2+1+1+1
6. 2+1+2
7. 1+1+3
8. 1+3+1
9. 3+1+1
【样例输入】
5 3 10
【样例输出】
397
【评测用例规模与约定】
对于 30% 的评测用例,1 ≤ p ≤ k ≤ 50,1 ≤ L ≤ 1000。
对于 60% 的评测用例,1 ≤ p ≤ k ≤ 50,1 ≤ L ≤ 10^ 9 。
对于 80% 的评测用例,1 ≤ p ≤ k ≤ 200,1 ≤ L ≤ 10^18 。
对于所有评测用例,1 ≤ p ≤ k ≤ 1000,1 ≤ L ≤ 10^ 18 。