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)$

 

原文地址:https://www.cnblogs.com/cxhscst2/p/9369106.html