AGC059 题解 (不含 F)

去年的比赛拖到今年发了呢...

Atcoder Proving Contest

A. My Last ABC Problem (2000)

场上打表找规律找了半天

考虑如何处理单个询问。

显然连续相同字母可以缩起来(即不会在段内分割),设段数为 k

对于一次操作 [l,r],显然 [l,r] 内的段数不会减少,[1,l)(r,n] 的段数也不会减少,减少的只有可能是 l1,l 之间及 r,r+1 之间。每次至多减少 2 段,故答案有下界 k2

结论:当 k5 时,一定存在 [l,r] 使得操作后减少 2 段。

证明

不妨设 S2=A,S3=B

  • S1=B,则取 l=r=2
  • S4=A,则取 l=r=3
  • 否则 S1=S4=C
    • S5=B,则取 l=r=4
    • S5=A,则取 l=2,r=4

观察发现 k=3 时需要 12 次操作,k=4 时必须要 2 次操作。

于是当 k 为偶数时答案为 k2k 为奇数时答案为 k12k+12

结论:当 S1=Sk 时,答案为 k12,否则为 k+12

证明 容易发现在操作过程中 S1Sk 始终不变。故当 k 缩减到 3 时,若初始 S1=Sk 则有答案 k12;否则有下界 k+12,又由于任何最优策略必定会缩减为此情况,故这也是上界,证毕。

即答案为 k+[S1Sk]2

对于多组询问,前缀和预处理即可。总时间复杂度 O(n+q)

Code

B. Arrange Your Balls (1900)

B < A

设出现的颜色种类数为 k,记 S 表示题目中的相邻颜色对种类数。

首先可以给出一种 S=k 的构造:将相同颜色的球全放在一起。

结论:Sk1

证明 构建一个无向图,对于所有相邻颜色对 (x,y),连边 (x,y)。显然该无向图是联通的,故(去重边后的)边数 Sk1,证毕。

结论:当 n<2(k1) 时,S>k1

证明 如果无向图(去重边后)是棵树,那么环上的顺序相当于图的一个欧拉回路,故所有点入度为偶数,可以归纳得到树上每条边对应的重边数量均为偶数,即每条重边至少出现 2 次。故 n2(k1),证毕。

事实上,当 n2(k1) 时一定存在一组 S=k1 的解,下面给出构造。

  • 如果所有颜色都出现至少两次,就直接把所有颜色套起来。

  • 先拿一个只出现一次的颜色定为第一个,断环为链,将指针设置为它后面的位置。

  • 对于一种有 k2 个球的颜色,将 k 个球全部放在指针位置,再在前面的 k2 个空隙中放入只出现一次的颜色,最后将指针设为最后一个空隙。

  • 最后剩下一个球放入指针位置。

注意到有 k 个球的颜色会带来 k2 个空隙(只出现一次的颜色则消耗 1 个空隙),上述过程中 (k2)=n2(k1)0,故方案合法。

总时间复杂度 O(n)

Code

C. Guessing Permutation for as Long as Possible (2900)

结论:对于排列 {Pi}k[1,n(n1)2](Ak,Bk) 可以被跳过当且仅当存在 m2(Ai1,Bi1),(Ai2,Bi2),,(Ait,Bim) 使得 itk,Ai1=Ak,Bim=Bk,Bit=Ait+1PAit<PBit(或者全部大于)。

证明 充分性显然,考虑证必要性。记 PAk=X,PBk=Y,不妨设 X<Y。考虑 Ak<r<Bk 使得 X<Pr<Y,记 Pr=Z

(X,Z)(Y,Z) 不能均问过(否则违背前提),不妨设没有问过 (Y,Z)。则可以将位置介于 (r,Bk) 的数中与 Z 通过连边联通的和 Z 一同移动到 Y 的右端,这样新的排列 P 仍然合法。

重复这样的操作,最后得到的排列中 XY 间没有介于 (X,Y) 的数。此时调换 XY 仍然合法,代表 PAtPBt 的大小关系无法确定,证毕。

结论:排列 P 合法当且仅当对所有 k 上述条件在 m=2 时成立。

证明 考虑 m>2 的条件成立的情况。如果已经问过 (Ai1,Bi2),则将 (Ai1,Bi2)(Ai2,Bi2) 缩成 (Ai1,Bi2)mm1;否则之后在询问 (Ai1,Bi2) 时就变为 m=2 的情况,能判定排列 P 不合法。证毕。

有了这个结论,问题就变成了有 O(n3) 个有序三元组限制,求有多少个排列 P 使对所有限制 (x,y,z) 都有 (PyPx)(PyPz)>0。遗憾的是这个加强后的问题没有什么好办法解决。

维护一张有 n 个点的无向图。倒序考虑每个询问 (Ak,Bk),连边 (Ak,Bk)

注意到,如果加入 (Ak,Bk)AkBk 并不连通,对于一个与 Ak,Bk 均不连通的点 u,由于前面一定询问过 (u,Ak)(u,Bk),故会产生限制 (Ak,u,Bk)。假设 Ak(或 Bk)所在的连通块在排列中的值域相邻,则说明这两块在排列中的值域相邻,显然可以归纳证得。

即建出一棵类似 Kruskal 重构树的二叉树(每个点有 02 个儿子),那么合法的排列 P 只能这样得到:

  • 对于每个非叶节点,可以将它的左右子树交换。
  • 中序遍历所有叶节点,得到排列。

cu 表示是否交换 u 的左右子树。那么对于剩下的限制 (x,y,z),记 px,y,z 的 LCA:

  • p 的左右子树内分别含有 yx,z,则限制必定被满足。
  • 否则不妨设 p 的左右子树内分别含有 xy,z,记 qy,z 的 LCA。若 yq 的左子树内,则有 cpcq;否则 cp=cq

把每个 cu=0cu=1 看作点,对限制连边再遍历一遍即可,如果限制有矛盾则答案为 0;否则设连通块数量为 x,则答案为 2x

时间复杂度 O(n3)

Code

D. Distinct Elements on Subsegments (3300)

首先能注意到若有解则 |Bi+1Bi|1,同时当其取等时会获得对 AiAi+k 的限制。

Li 表示 Ai 是否在 Ai+1,Ai+2,,Ai+k1 中出现过,Ri 表示 Ai 是否在 Ai1,Ai2,,Aik+1 中出现过,于是有 Bi+1Bi=Ri+kLi

边界:B1=L1+L2++LkBn=Rn+Rn+1++Rn+k1

结论:设 {Li} 中值为 1 的位置从小到大为 X1,X2,,Xp{Ri} 中值为 1 的位置从小到大为 Y1,Y2,,Yq,若有解则 p=qi[1,p],1YiXik1

证明 对每种颜色 x,设 {Ai}x 的位置从小到大为 Z1,Z2,,Zr,则对于所有满足 Zi+1Zik1LZi=RZi+1=1。于是 p=q 且存在一组 {Xi}{Yi} 间的匹配使得每一对 (Xi,Yj) 满足 1YjXik1。显然交叉匹配的调换匹配仍然合法,故可调整为顺序匹配,证毕。

事实上,只要 {Li}{Ri} 满足上述条件,就可以构造一组合法的 {Ai}

  • cnt=0。从前往后确定每个 Ai
  • Ri=0,则令 cntcnt+1,Aicnt
  • Ri=1,设与 Yt=Ri 匹配的 Xtj,则令 AiAj

还剩下最后一个问题:如何由 {Bi} 得到合法的 {Li}{Ri}

由于 Bi+1Bi=Ri+kLi,故当 |Bi+1Bi|=1 时已经确定,问题是 Bi+1=Bi 时如何决策。

结论:若有解,则下面的构造方式一定合法:对于所有 Bi=Bi+1,若 Bi<k,则令 Li=Ri+k=1;否则令 Li=Ri+k=0。对于 Ln+1,,Ln+k1R1,,Rk1 的总数已确定,尽量靠中间放。

证明

考虑任意一组合法的 {Li}{Ri},若存在 Bi=Bi+1<kLi=Ri+k=0,将其调整为 1。由于存在解使得 Bi<kLi=Ri+k=0,故该解满足 Ai+1,Ai+2,,Ai+k1 中有两个相同的数 Ax,Ay。那么将原匹配 (x,y) 改为匹配 (i,y)(x,i+k),由之前的结论得 {Li},{Ri} 仍然合法。证毕。

那么按照上面的策略两步构造即可,时间复杂度 O(n+k)

Code

E. Grid 3-coloring (3800)

神奇脑洞题,甚至没有 C,D 复杂

先将 1,2,3 分别替换为 0,1,2

结论:对于一个合法的矩阵 A,存在唯一的矩阵 B 使得:

  • Bi,jAi,jmod3
  • B1,1=0
  • i>1,|Bi,jBi1,j|=1j>1,|Bi,jBi,j1|=1
证明(i,j) 字典序升序填数:
  • i=1(或 j=1),若 Ai,jAi,j1+1mod3,令 Bi,j=Bi,j1+1;否则令 Bi,j=Bi,j11。显然填法唯一。

  • 否则,若 Ai1,j=Ai,j1,按上述方式填;否则令 Bi,j=Bi1,j1。显然填法唯一。

题目给出了边框上的 A 值,用上述方式可以确定这些位置的 B 值(如果已经矛盾则无解)。

有解的一个必要条件是对于所有 i[1,n],|B1,iBn,i|n1,|Bi,1Bi,n|n1

神奇的是,这也是充分条件!直接令 Bi,j=max{B1,j(i1),Bn,j(ni),Bi,1(j1),Bi,n(nj)}。考虑 Bi+1,jBi,j,由于取 max 内的四个值均增加了 ±1,故 Bi+1,jBi,j=±1,故合法。

时间复杂度 O(n)

Code

F. LIDS (???)

又是 Anton 的神秘计数题(上一场在 AGC055F),什么时候有闲心了再看

本文作者:苹果蓝17

本文链接:https://www.cnblogs.com/Appleblue17/p/17019258.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   苹果蓝17  阅读(276)  评论(2编辑  收藏  举报
历史上的今天:
2021-01-01 凸包与动态规划——浅谈斜率优化与 wqs 带权二分
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起