#P10301. [THUWC 2020] Yazid 的棋
[THUWC 2020] Yazid 的棋
题目描述
给定一张包含 个点、 条边的有向图,点标号从 至 ,边标号从 至 。
这张图的主人 Yazid 将先后执行 次操作,每个操作的形式为:在一个节点 放置一个棋子,并设定一个整数 ,同时该棋子不停地沿着编号最小的出边移动,其中当第 条边被经过 次后就会立刻从图中被删除。棋子会不停移动直到无出边可走或棋子已移动了 步。对于最终棋子停留的节点,我们把它叫做这次操作的终点。做完这些后,Yazid 会将该棋子移出游戏。
你需要预测 Yazid 每次操作的终点编号。
需要注意的是,所有操作都是有后效性的。也就是说,在前 步操作时消失的边、经过的次数都不会在第 次操作时被重置,即下一步操作在上一步操作基础上进行。
输入格式
第一行两个用空格隔开的整数 。
接下来 行描述有向图。这部分中第 行()包含三个用空格隔开的整数 ,描述一条 到 的经过 次会被删除的有向边。
- 这里保证 ,。
接下来一行一个整数 。
接下来 行依次描述各操作,每行两个用空格隔开的整数 ,描述一个操作。
- 这里保证 ,。
输出格式
输出 行,每行一个整数,依次输出各操作的终点。其中第 行输出的是第 个操作的终点。
7 8
3 1 3
1 2 5
2 3 2
6 3 1
5 2 2
4 2 1
7 5 3
2 2 2
3
7 7
6 2
6 2
1
1
6
见附件中的 2.in。
见附件中的 2.ans。
提示
【样例解释 #1】
第一次操作,棋子的移动步骤如下:
- 在 号节点放置一个棋子。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。此时,第 条边已被经过了 次,被从图中删去。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。
- 棋子停留在 号节点,故 号节点就是此次操作的终点。
第二次操作,棋子的移动步骤如下:
- 在 号节点放置一个棋子。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。此时,第 条边已被经过了 次,被从图中删去。
- 号节点编号最小的出边是第 条边,棋子通过该边移动到 号节点。此时,第 条边已被经过了 次,被从图中删去。
- 棋子已移动了 步,故停留在 号节点, 号节点是此次操作的终点。
第三次操作,棋子的移动步骤如下:
- 在 号节点放置一个棋子。
- 号节点已没有出边,故棋子只能停留在 号节点,故 号节点是此次操作的终点。
【子任务】
本题有多个子任务,每个子任务可能包含多个测试点,只有通过了一个子任务中的所有测试点才能得到该子任务的分数。
每个子任务的测试点满足一些特殊的限制,具体如下表:
子任务编号 | 性质 | 分值 | |||||
---|---|---|---|---|---|---|---|
1 | 8 | ||||||
2 | |||||||
3 | |||||||
4 | |||||||
5 | 13 | ||||||
6 | 15 | ||||||
7 | 8 | ||||||
8 | 28 |
对于所有测试点,保证 ,,,,。
- 性质 0:无特殊性质;
- 性质 1:图为随机生成,每条边 出现的概率为 ;
- 性质 2:保证 ;
- 性质 3:保证图构成了一棵有根树。
- 性质 4:保证图构成了一棵环套树。
- 性质 5:保证前 条边构成了一棵环套树。