ptz2023题解/训练记录 #1 Petrozavodsk Winter Camp 2023 day1 JAGain in Petrozavodsk
Problem A. Agriculture
签到题,没看,被队友切了
Problem B. Blocks and Expressions
签到题,没看,被队友切了
Problem C. Changing the Sequences
首先,建图吧。
然后,二分图最大带权匹配吧。
假如我们不讨论字典序的问题,那么就建一张图,两排点,都有六十个,左边代表A中原来的值,右边就是A要变成的值,两点连边就是表示A的值从左边变成右边。边上的权则是若这么变换,距离会拉近多少,然后跑个KM就结束了。
但是本题要求字典序最小。
于是我们容易想到,我们将左边的点按照在A中第一次出现的顺序排个序,现在越上面的点越优先连小的点。于是我们先将所有边的权值乘60,将第一个点出边的权根据连点的大小加上0-59的权值,跑一遍km,这样第一个点连接的一定是字典序最小的答案。将这个操作重复60次,做完。
Problem D. Determine The Fluctuation Bonus
大概是数据结构,队友场上说珂朵莉树可能可以,赛后把这题补了。
Problem G. Good Pizza
经典贪心题,将所有的点按照ai/(2*ti+1)的顺序排序,就是送餐的顺序。
Problem H. Hacks With Include
缩一下点,将所有强连通块用其中最小的点表示,之后将所有入度为0的点排个序输出。
Problem I. Impossible-to-finish Race
dp,队友说用前缀和转移一下。
Problem J. JAG Graph Isomorphism
基环树同构。首先树哈希,然后把结果用最小表示法变成一个字符串,两个字符串正反都比一下,就知道同不同构啦
Problem K. King Of Zombies
讨论每个僵尸会感染哪些人,然后取出现在最早被感染的人,这个人的感染时间就被确定了,然后继续上述操作。但是写起来比较麻烦,还有精度问题。
Problem L. Lucky Stars Management
感觉像是用类似k次剩余一类的东西维护树形dp转移,但我没弄出来,也没找到题解,洋文也听不懂,很烦。