【输出格式】
输出到文件中。
输出一个字符串,表示从第一个读入的小人开始,依次数完m条指令后到达的小人的职业。
【样例1输入】
73
0
0
0
1
1
0
1
03
11
02
【样例1输出】
【样例1说明】
这组数据就是【题目描述】中提到的例子。
【样例2输入】
1010
1c
0r
0p
1d
1e
1m
1t
1y
1u
0v
17
11
14
05
03
01
16
12
08
04
【样例2输出】
y
【子任务】
子任务会给出部分测试数据的特点。
如果你在解决题目中遇到了困难,可以尝试只解决一部分测试数据。
每个测试点的数据规模及特点如下表:
测试点
n
m
全朝内
全左数
=1
职业长度为1
1
=20
=103
√
√
√
√
2
×
3
√
×
4
×
5
√
√
×
6
×
7
√
×
8
×
9
√
√
√
×
10
×
11
√
×
12
×
13
√
√
×
14
×
15
√
×
16
×
17
=105
=105
√
√
18
×
19
√
×
20
×
其中一些简写的列意义如下:
●全朝内:
若为“√”,表示该测试点保证所有的玩具小人都朝向圈内;
●全左数:
若为“√”,表示该测试点保证所有的指令都向左数,即对任意的1≤i≤m,=0;
●=1:
若为“√”,表示该测试点保证所有的指令都只数1个,即对任意的1≤i≤m,=1;
●职业长度为1:
若为“√”,表示该测试点保证所有玩具小人的职业一定是一个长度为1的字符串。
天天爱跑步()
【问题描述】
小C同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。
《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。
这个游戏的地图可以看作一棵包含n个结点和n−1条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。
树上结点编号为从1到n的连续正整数。
现在有m个玩家,第i个玩家的起点为,终点为。
每天打卡任务开始时,所有玩家在第0秒同时从自己的起点出发,以每秒跑一条边的速度,不间断地沿着最短路径向着自己的终点跑去,跑到终点后该玩家就算完成了打卡任务。
(由于地图是一棵树,所以每个人的路径是唯一的)
小C想知道游戏的活跃度,所以在每个结点上都放置了一个观察员。
在结点j的观察员会选择在第秒观察玩家,一个玩家能被这个观察员观察到当且仅当该玩家在第秒也正好到达了结点j。
小C想知道每个观察员会观察到多少人?
注意:
我们认为一个玩家到达自己的终点后该玩家就会结束游戏,他不能等待一段时间后再被观察员观察到。
即对于把结点j作为终点的玩家:
若他在第秒前到达终点,则在结点j的观察员不能观察到该玩家;若他正好在第秒到达终点,则在结点j的观察员可以观察到这个玩家。
【输入格式】
从文件中读入数据。
第一行有两个整数n和m。
其中n代表树的结点数量,同时也是观察员的数量,m代表玩家的数量。
接下来n−1行每行两个整数u和v,表示结点u到结点v有一条边。
接下来一行n个整数,其中第j个整数为,表示结点j出现观察员的时间。
接下来m行,每行两个整数和,表示一个玩家的起点和终点。
对于所有的数据,保证1≤,≤n,0≤≤n。
【输出格式】
输出到文件中。
输出1行n个整数,第j个整数表示结点j的观察员可以观察到多少人。
【样例1输入】
63
23
12
14
45
46
025123
15
13
26
【样例1输出】
200111
【样例1说明】
对于1号点,W1=0,故只有起点为1号点的玩家才会被观察到,所以玩家1和玩家2被观察到,共2人被观察到。
对于2号点,没有玩家在第2秒时在此结点,共0人被观察到。
对于3号点,没有玩家在第5秒时在此结点,共0人被观察到。
对于4号点,玩家1被观察到,共1人被观察到。
对于5号点,玩家1被观察到,共1人被观察到。
对于6号点,玩家3被观察到,共1人被观察到。
【样例2输入】
53
12
23
24
15
01030
31
14
55
【样例2输出】
12101
【子任务】
每个测试点的数据规模及特点如下表所示。
提示:
数据范围的个位上的数字可以帮助判断是哪一种数据类型。
测试点编号
n
m
约定
1
=991
=991
所有人的起点等于自己的终点,
即=
2
3
=992
=992
=0
4
5
=993
=993
无
6
=99994
=99994
树退化成一条链,其中1与2有边,
2与3有边,...,n−1与n有边
7
8
9
=99995
=99995
所有的=1
10
11
12
13
=99996
=99996
所有的=1
14
15
16
17
=99997
=99997
无
18
19
20
=299998
=299998
【提示】
如果你的程序需要用到较大的栈空间(这通常意味着需要较深层数的递归),请务必仔细阅读选手目录下的文档,以了解在最终评测时栈空间的限制与在当前工作环境下调整栈空间限制的方法。
换教室()
【问题描述】
对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。
在可以选择的课程中,有2n节课程安排在n个时间段上。
在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室上课,而另一节课程在教室进行。
在不提交任何申请的情况下,学生们需要按时间段的顺序依次完成所有的n节安排好的课程。
如果学生想更换第i节课程的教室,则需要提出申请。
若申请通过,学生就可以在第i个时间段去教室上课,否则仍然在教室上课。
由于更换教室的需求太多,申请不一定能获得通过。
通过计算,牛牛发现申请更换第i节课程的教室时,申请被通过的概率是一个己知的实数,并且对于不同课程的申请,被通过的概率是互相独立的。
学校规定,所有的申请只能在学期开始前一次性提交,并且每个人只能选择至多m节课程进行申请。
这意味着牛牛必须一次性决定是否申请更换每节课的教室,而不能根据某些课程的申请结果来决定其他课程是否申请;牛牛可以申请自己最希望更换教室的m门课程,也可以不用完这m个申请的机会,甚至可以一门课程都不申请。
因为不同的课程可能会被安排在不同的教室进行,所以牛牛需要利用课间时间从一间教室赶到另一间教室。
牛牛所在的大学有v个教室,有e条道路。
每条道路连接两间教室,并且是可
以双向通行的。
由于道路的长度和拥堵程度不同,通过不同的道路耗费的体力可能会有所不同。
当第i(1≤i≤n−1)节课结束后,牛牛就会从这节课的教室出