首页 > 其他分享 >无向图里找奇偶环 - OI回忆录

无向图里找奇偶环 - OI回忆录

时间:2022-10-03 23:00:11浏览次数:73  
标签:奇偶 OI 偶环 无向 奇环 仙人掌


title: 无向图里找奇偶环 - OI回忆录
tag:


marisa
我退役后打ACM,当时队内每周vp训练,我寻思着调场水一点的就当交作业了,就选了这场
虽然是单挑,虽然开局不利,但也非常顺呐,一下过了8题。C题久攻不下,I题思路想错,F题谁会去写,于是我看向J题。
看完题,思路啪一下过来了,很快啊。就是答案不大于5,且答案大于2的很好判断,搜一下判断答案小于等于2的就行了。
后来发现在无向图中找奇偶环不会QAQ,也不会找最大的奇环,憋出的绝杀没放出来。
猛然回首自己的OI生涯,发现这种找奇偶环已经不是第一次不会了。。。这道题叫 Just Some Bad Memory ,真的扎心。。。
那时我还是非常菜但远比现在强的初三OIer,有幸能参加在中山纪念中学举办的PKUWC2019。那次的d2t2就是类似的题。。。当时知道结论但是不知道怎么写真是难受,写的时候连连叫苦,最后d2崩盘喜提三等。无论是当时还是现在都没有把那次旅游赛当真毕竟后来拿一等了,但那段与朋友一起的时光令此时高考炸裂远走他乡的我愈发向往。此时的我打ICPC/CCPC比赛不再有初高中时的强力队友带我,更多时候一个队必须由我扛起(marisa化),拿Au更是奢望。


这个算法赛后我想了很久,实际上还是巧妙的。
网上有说,是统计边双连通分量同时二分图染色求奇环,然后取数一个连通分量里边数和点数是否对应来判断是否有奇偶环(假如不是简单环且整个是奇环则有偶环),我说你这个不行。类似“8”形的两个奇环,中间连个割点,形成不了一个偶环。
我说我这个可以。先用dfs黑白染色求出是否有奇环。假如两个奇环有公共边,则去掉公共边就成了一个偶环。如果没有偶环,则整个图应该是仙人掌森林。这样一来,找最大奇环也同时解决了,因为仙人掌不会有重叠的环;假如不是仙人掌,两个奇环重叠,且较大的奇环被较小的奇环给占了边,这样就有偶环,这道题已经解决了。
于是考虑如何找两个奇环的公共边。其实只要判断是不是仙人掌就可以了呀。考虑一个奇环,将它上面的边做标记,被标记的边经过两次就重了,立即退出,每条边被扫一至两次,时间复杂度是 $ \mathcal{O}(m) $ 的。考虑dfs,只有回溯祖先节点的边可以成环,直接在栈里标记就行。
My Code
但这种手法有些笨拙,可以直接树上差分。
My Code
可能这个更笨拙?

标签:奇偶,OI,偶环,无向,奇环,仙人掌
From: https://www.cnblogs.com/daniel14311531/p/16751516.html

相关文章

  • Android Install Termux
    PlayStoreInstallTermuxInstallpackages:pkginstallopensshOpenSSHservice:sshd&SeewhoamI:whoamiSeeIP:ifconfigSetpassword:passwdLoginviaanothercomp......
  • Android将会有无密码登录功能,你信吗?
    谷歌有望在今年年底前取消登录Android应用密码,改用更为先进的人工智能识别模式谷歌可根据用户的使用模式来进行身份验证,从而省去了繁琐的密码输入步骤。根据谷歌透露的......
  • 【树上背包】洛谷 P4516 [JSOI2018] 潜入行动
    P4516[JSOI2018]潜入行动省选/NOI-、树上背包计数题意略设状态为\(dp[u][j][0/1][0/1]\),u点子树放了j个装置,u点有没有放装置,u点有没有被监听的方案数。对......
  • 如何不用 TeX 制作优美的 NOIP 模拟赛题面(详细揭秘)
    不用TeX制作优美的NOIP模拟赛题面是怎么回事呢?那么优美的NOIP模拟赛题面为什么会不用TeX制作,相信大家都很好奇。大家可能会感到很惊讶,那么优美的NOIP模拟赛题面......
  • SSMS检索Appointment数据
    Appointment表是基于activitypointer生成的表,通过SSMS直接连接到dataverse环境时,虽然表一览里不显示Appointment,要想检索Appointment的数据,只需要直接写SQL类似:select*FRO......
  • Luogu P3469 [POI2008]BLO-Blockade(tarjan求割点)
    题目链接:https://www.luogu.com.cn/problem/P3469 [POI2008]BLO-Blockade题面翻译B城有$n$个城镇,$m$条双向道路。每条道路连结两个不同的城镇,没有重复的道路,所有......
  • 「浙江理工大学ACM入队200题系列」问题 K: 零基础学C/C++84——奇偶ASCII值判断
    本题是浙江理工大学ACM入队200题第八套中的K题我们先来看一下这题的题面.题面题目描述任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO;例如,字符A的AS......
  • join 三表连接综训
    有时我们会对三个表做连接。力扣180:selectdistinctl1.NumasConsecutiveNumsfromLogsl1,Logsl2,Logsl3wherel1.Num=l2.Numandl1.Num=l3.Numandl1.Id......
  • 【THM】Metasploit: Introduction(Metasploit简介)-学习
    介绍Metasploit是应用最广泛的利用框架之一,它是一个强大的工具,可以支持渗透测试的所有阶段,从信息收集到后渗透。Metasploit有两个主要版本:MetasploitPro:促进任......
  • 如何实现Android平台GB28181设备对接Camera2数据
    技术背景在写如何实现Android平台GB28181设备对接Camera2数据说明之前,我在前两年的blog就有针对camera2的RTMP直播推送模块做过技术分享:在Google推出Android5.0的时候,An......