2019-2020 ICPC Southwestern European Regional Programming Contest(Gym 102501)

2019-2020 ICPC Southwestern European Regional Programming Contest(Gym 102501)

A.Environment-Friendly Travel

考虑到如果没有B的限制,我们可以直接连边进行最短路的计算。现在有一个行驶距离不超过B的限制,注意到题目中B<=100,我们可以加一维距离限制f[i][j]表示走过距离<=i,到达j点的最小花费就行了。

D.Gnalcats

模拟。一开始判断两个复合DNA我用的递归去判定TLE了,其实直接用一个map存储每个复合DNA的对应编号就可以了。

H.Pseudo-Random Number Generator

因为要%m,根据抽屉原理,必然是要出现重复数值,从而出现循环的。考虑到这点,我们可以先找到循环开始的点和循环节长度,打表计算答案就行了。找链表循环起点和循环长度可以使用Floyed's Tortoise and Hare算法。

J.Counting Trees

我们考虑先序遍历的序列,先考虑最小值。例如2 3 1 2 3 1 1 3 2 1 2 3。我们先考虑安置1的位置,那就是卡特兰数,4个结点的二叉树个数。对于每种二叉树,5个子树的遍历顺序是唯一的,所以我们在递归处理剩余5个子树{2,3},{2,3},{},{3,2},{2,3}就可以了。最后答案就是一些卡特兰数的乘积。

L.River Game

由于题目限制,我们可以将连着湿地区域的firm ground分成若干个连通块,而这些连通块是独立的游戏,符合NIM-模型。
对于每个独立的游戏,连通块大小m<=2n。暴力枚举\(O(m*2^{m})\)计算sg函数值就可以了。最后通过NIM异或起来判断。

猜你喜欢

转载自www.cnblogs.com/Embiid/p/12460227.html