#P17652. [IO 2025 #1] 丝之歌
[IO 2025 #1] 丝之歌
题目描述
在法鲁姆的丝绸平原上,有 只昆虫。每只昆虫都有三种角色之一:恰好一只歌者、 只回声者,以及 只沉默者。
时刻 ,唯一的歌者发出一声呼喊。声波不会衰减,并以相同的速度均匀地向各个方向传播:到达距离歌者为 的位置,需要 单位时间。此后,每只回声者都在第一次听到其他昆虫的呼喊的时刻,立即发出一声呼喊。这些声波的传播方式与最初的声波相同。不同声波之间不会相互作用,也不会影响彼此。
一名听众位于 ,记录声波到达的时刻:首先恰好听到一声呼喊;经过一段非零的时间后,同时听到另外 声呼喊;再经过一段非零的时间后,听到另外 声呼喊;如此一共出现 个到达时刻,得到序列 。
注意,每只非沉默者都只呼喊一次,所以 。
已知平面上所有 只昆虫的坐标。请计算有多少种方法,可以从中选出恰好一只歌者和恰好 只回声者,使听众的观察结果与给定序列 一致。其余昆虫自动成为沉默者。答案对 取模。
输入格式
输入包含多组测试数据。第一行包含一个整数 ,表示测试数据组数,。接下来给出各组测试数据。
每组数据第一行包含整数 ,分别表示昆虫数量,以及预期在 听到呼喊的不同到达时刻数量,,。
第二行包含 个整数,表示昆虫的横坐标 。第三行也包含 个整数,表示昆虫的纵坐标 ,。
第四行包含整数 ,表示在不同到达时刻,听众分别听到多少声呼喊,,,。这些数按照时间先后顺序给出。
保证所有测试数据的 之和不超过 。
输出格式
对于每组测试数据,输出一个整数,表示符合要求的角色分配方法数量,对 取模。
8
1 1
1
1
1
2 1
2 0
0 1
1
2 2
1 2
0 0
1 1
3 2
1 0 2
0 1 0
1 2
3 2
0 1 0
0 0 1
1 2
4 3
0 1 0 1
0 0 1 1
1 2 1
6 3
0 1 0 1 -1 1
0 0 1 1 1 -1
1 2 3
3 2
1 0 -1
0 1 0
1 1
1
2
1
0
1
1
1
6
提示
注意, 并不保证任意一只昆虫都能成为歌者。以下解释中,声音的传播速度为 。
- 第一组数据中,只有一只位于 的昆虫。让它成为歌者后,听众在时刻 听到一声呼喊。
- 第二组数据中,两只昆虫分别位于 和 。任意一只都可以成为歌者:选择第一只时,听众在时刻 听到呼喊;选择第二只时,听众在时刻 听到呼喊。两种情况均满足要求。
- 第三组数据中,两只昆虫的坐标分别为 和 。如果让第一只成为回声者,两声呼喊会同时到达听众的位置,不满足题目要求。