【比赛日志】APIO2020(2020.08.15)
考试策略:花半个小时看题目,想所有题( [Contest Strategy Lecture.pdf](../reference/Contest Strategy Lecture.pdf) )
考前突然发现 APIO2020参赛登录注意事项及竞赛规则(新版务请仔细阅读).pdf 里面有这么一条:
这不是Codeforces赛制吗qwq……瞬间觉得自己无敌了(Fake)
完了……比赛开始后感觉脑子不适合想题……(没有提前调整生物钟……[自闭])
- 1:02:完了……zbl(只会T2)
- 3:23:第二题的暴力挂了………………………………死了死了死了QAQ……MD果然该多写一些暴力的……
- 3:35:写完第三题的暴力,拿了26分。
粉刷墙壁(paint)
感觉没怎么用到\(\sum f^2(k)\le 400000\)的性质????至多用到了\(\max f(k)\le \sqrt{400000}\approx 632\)???
做法1
维护每一个承包商可能的\(y-x\)的值,滚动窗口,维护当前窗口有没有一个\(y-x\)的值出现次数\(= M\)。
但是还是不知道每一个颜色区间是否能被粉刷????
时间复杂度\(O(N\max f(k))\)……?(不知道能不能卡进时限)
做法2
枚举一对颜色相同的公司???不知所云……
交换城市(swap)
如果是一棵树的话:
设一个节点\(u\)的到父亲与到两个不同儿子的路程的\(\min\)为\(f_u\),则一个询问\(u\sim v\)的答案为\(\min_{u\sim w\sim v}f_w\)。
否则还需考虑当前联通块是否有环——如有环,则答案为当前连通块最大值(因为无重边、自环)。做kruskal时维护当前连通块是否有环,如没有环,维护还未被回答的询问即可。按秩合并的复杂度是两个\(\log\)的,问题应该不大…………艹居然强制在线……我没了。那就搞一个类似Kruskal重构树的东西吧……
后再在最小生成树上面做一下即可……?(感觉这个结论好玄学啊……)
有趣的旅途(tour)
想不出来比较好的构造方法……
\(n\le 500\)
询问得到每一对点的距离,每次取最大的即可。
其他做法
并没有用到度数至多为\(3\)限制……有什么用吗QAQ?