这场难度有所提升,感觉相对上一场思维量和代码量都有所增加,赛中6赛后7,虽然这把排名好看一点,但是wa的太多了,加起来一共wa了13发,呜呜呜。
高光时刻:(别问为什么wa1,因为手抖了,其实差一点抢到k的一血,差了7秒呜呜呜)
A(补):思维,结论
C:签到+贪心
E:图论,数学
F:大模拟+逆元+并查集,wa5才过心态爆炸
H:位运算+贪心
I:构造+模拟,又wa5,呜呜呜
K:签到
E:小沙的长路
身为队伍里的图论选手,虽说还没开始重学图论,但这题还是可以做的。
首先考虑最大值,要使得最长路最长,那一定要尽可能多地经过每一条路,因此如果我从一个点出发,一定有一条最长路最后回到这个点(因为完全图每个点度数至少为2,要想全部经过至少我这个出发点的几条要尽量都经过),那问题就变成给一个完全图删边能构成的最长欧拉回路问题,欧拉回路有一个定理:能构成欧拉回路的充要条件是这个图中最多有两个奇数度的点或者都是偶数度的点,所以当n为奇数时本身就存在欧拉回路,当n为偶数时,我们想办法去掉尽可能少的边使这个图只有两个奇数度的点,这个很好想,去掉一条边可以使两个结点的度数变成偶数,最后要剩下两个所以一共要去掉n/2-1条边。
再考虑最小值,这个我和出题人思路貌似不太一样:
我的想法:
要使最长路最短,感性地先找一条看起来比较符合答案的就是我选定一个起点(入度为0)和终点(出度为0),让所有的边都指向终点,即从起点bfs染边,这样最长路长度为n-1,那还有没有更小地呢?要使最长度更短,在上图地基础上能想到地操作就是让这个最长路少走一个点(上面最长路是经过了每一个点地),我们使和终点直接相连的边反向,但是这样一来这个终点就相当于变成了一个起点,然后图上又会出现一个新的终点,又回到了初始状态,所以这条最长路不可能再缩短了。嘛,我这个不太严谨,但是题解这个我不太能理解,呜呜呜。
题解: