2018 多校联合训练 2
Problem A
Problem B
Problem C
比赛的时候想了好久但是还是做不出来。
每个联通块单独处理,把奇点全部拿出来。奇点个数肯定是偶数。
假设奇点个数为$cnt$,用$\frac{cnt}{2}$条边各自连接两个奇点,那么所有的点都变成了偶点。
然后跑一遍欧拉回路就行了。
最后把那些新加的边断开然后输出就可以了。
Problem D
因为我可以自己选择当先手还是后手,所以我肯定赢
Problem E
比赛的时候灵光一现,大概是分成$47*47$块然后每块放$47$个。
有些$1$会被放到外面所以不能被记录进去。
最后跑出来刚刚比$85000$个多一点。
Problem F
我tm自己出的校赛放到多校降低一维复杂度我就不会做了……
Problem G
维护一个数列表示每个元素距离减到$0$还要几步。
当一个数变成$0$的时候他就变成了$b_{i}$
因为$b$是一个排列所以从$0$飞到$b_{i}$的次数不会超过$nlogn$
然后开个线段树高最小值,开个树状数组记录答案,就好了。
Problem H
Problem I
Problem J
逆序对个数 $* min(x, y)$