2022牛客寒假算法基础集训营2

本文介绍了牛客寒假算法基础集训营中的难点题目,涉及图论、大模拟、逆元、并查集、位运算等算法。作者分享了在解决图论问题"小沙的长路"时,如何确定最长和最短路径,并讨论了"小沙的算数"中使用逆元处理除法取模的问题。同时,还分析了"小沙的数数"的位运算解题思路和"小沙的构造"的字符对称性构造方法。文章反思了比赛中遇到的错误和编程技巧的不足。
摘要由CSDN通过智能技术生成

这场难度有所提升,感觉相对上一场思维量和代码量都有所增加,赛中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,那还有没有更小地呢?要使最长度更短,在上图地基础上能想到地操作就是让这个最长路少走一个点(上面最长路是经过了每一个点地),我们使和终点直接相连的边反向,但是这样一来这个终点就相当于变成了一个起点,然后图上又会出现一个新的终点,又回到了初始状态,所以这条最长路不可能再缩短了。嘛,我这个不太严谨,但是题解这个我不太能理解,呜呜呜。

题解:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuhudaduizhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值