2023.01.14 欧洲信息学竞赛题目选讲 学习笔记

讲课人:钟诚。

WC2023 Day2 下午的课。

来放放松。

1.QOJ#5430. Triangeltal

将所有 ai 从小到大排序后,可以用调整法说明如果有解,存在一种取三段连续区间的解。假设选的三段分别是 [1,x],[x+1,y],[y+1,n]。枚举 y,一种情况是 axyx,ayny,anx,可以发现 x=an 时最优;另一种情况是 axny,anyx,ayx,可以发现 x=ay 时最优。

时间复杂度 O(n),空间复杂度 O(n)

2.Gym104230C Toy Design

假设我们已经有 i 个设计,其中第 j(0ji) 个设计中前 j 个引脚连通,且相比 0 号设计多的边都只在前 j 个引脚之间。现在考虑第 i+1 个引脚,询问第 i+1 个引脚和第 j 个设计中 1 号引脚会得到在 0 号设计中第 i+1 个引脚和第 1j 个引脚是否连通,于是可以通过二分在 log2(i+1) 次询问内得到在 0 号设计中 1i 中和 i+1 连通的最小编号(或不存在),并且一定会新得到一个设计满足前 i+1 个引脚连通,且相比 0 号设计多的边都只在前 i+1 个引脚之间。

询问次数为 i=1nlog2i

3.QOJ#4208. Flight to the Ford

时刻维护两个集合 TcorrTwrong,表示最后一次询问得到答案在 Tcorr 中、不在 Twrong 中,可能成为答案的集合。初始时 Tcorr=[1,109],Twrong=。之后每次找一个集合 PTcorrTwrong,如果要猜的数在 P 中,则传递 1,否则传递 0。如果收到 1 则让 Tcorr=(TcorrP)(TwrongP)Twrong=TcorrP;如果收到 0 则让 Tcorr=(TcorrP)(TwrongP)Twrong=TcorrP。可以发现这样正确答案一定会留在 TcorrTwrong 中。为了每次尽可能稳定地减小 |TcorrTwrong|,取 P=(Tcorr 一半的元素)(Twrong 一半的元素),经计算 96 次以内可以把 |TcorrTwrong| 缩减为 3,之后将三个数编码为 0000,0110,1111 再传递 4 次即可。

4.QOJ#193. Climbers

f(i,j) 表示一个人在 i 另一个人在 [j,j+1) 的最小体力值,考虑每个人往左或往右走,每个点只会连出 O(1) 条边,直接跑最短路。

时间复杂度 O(n2logn),空间复杂度 O(n2)

5.LOJ#3884. 「eJOI2022」寻找树根 / Where Is the Root?

称度数为 1 的节点为叶节点,度数 >1 的节点为中间节点。一种暴力的想法是,询问所有点对,对于一个点 u 如果在所有询问 (u,i)(1in) 中都返回了 YES,那就称其为候选节点,可以发现根一定是候选节点。如果恰好有一个候选节点,那么它就是根。

否则,有结论:如果有多个候选节点,那么根节点一定是叶节点!这是因为如果根节点度数 >1,根的所有子树里都不可能有候选节点。

又有结论:不是根的候选节点全是中间节点!这是因为存在点度数至少为 3,说明有至少 3 个叶节点,而对于任意两个不是根的叶节点返回的都是 NO

所以如果有不止一个候选节点,那么根就是所有叶节点中唯一一个候选节点。

现在考虑先询问一次所有叶节点,于是可以知道根节点是否是叶节点。如果是中间节点,可以给中间节点一个顺序,每次二分询问一段前缀和所有叶节点,它们的 LCA 一定是根节点;如果是叶节点,可以给叶节点一个顺序,每次二分询问一段前缀,它们的 LCA 只可能是中间节点或根节点(注意只剩两个叶节点时需要一些特判)。一共需要 log2n+1 次。

考虑给所有节点一个顺序,使得叶节点都在中间节点的前面。每次二分询问一段前缀,由以上两种情况可以发现返回 YES 当且仅当根节点在这些前缀中,再特判一下只剩两个叶节点时情况即可。询问次数降到了 log2n 次。

6.QOJ#4401. Prize

没讲。

7.Gym103806B MCD

(0,0),(0,1),(1,0),(1,1) 可以知道 x,y 二进制下的最低位,在此基础上问 (0,0),(0,2),(2,0),(2,2) 加上之前得出的最低位可以知道 x,y 二进制下的第二低位,以此类推。这样最坏要 4logn=244 次,如果随机打乱一下期望要问 1+2+3+44logn=2.5logn=152.5 次。

其实除了最低位外其余位根本不需要再问一次 (0,0) 加上之前得到的结果,也就是说期望总次数可以降到 1+0+1+2+34logn=1+1.5logn=92.5 次。

8.[First Round SOI 2021/2022]Claw Sort

没讲。

posted @   18Michael  阅读(11)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示