题解 P7763 [COCI2016-2017#5] Ronald
1.题解 P7763 [COCI2016-2017#5] Ronald
2.题解 P6497 [COCI2016-2017#2] Prosječni3.题解 P7537 [COCI2016-2017#4] Rima4.题解 P8017 [COCI2013-2014#4] UTRKA5.题解 P7751 [COCI2013-2014#2] PUTNIK6.题解 P7752 [COCI2013-2014#2] PALETA7.题解 P7586 [COCI2012-2013#1] SNAGA8.题解 P6485 [COCI2010-2011#4] PROSJEK9.题解 P6447 [COCI2010-2011#1] ŽABE10.题解P6677 [COCI2019-2020#2] Checker11.题解P8073 [COCI2009-2010#7] BAKICE12.题解P8084 [COCI2011-2012#4] BROJ13.题解P6370 [COCI2006-2007#6] KAMEN14.题解 P7165 [COCI2020-2021#1] Papričice15.题解 P9911 [COCI 2023/2024 #2] Kuglice16.题解 P6356 [COCI2007-2008#3] CUDAK17.题解 P7309 [COCI2018-2019#2] Kocka18.题解 P6548 [COCI2010-2011#2] IGRA19.题解 P6491 [COCI2010-2011#6] ABECEDA洛谷。
题意
显然。
分析
对于此题,我们可以从最终状态反推。
最终状态是什么,就是我们所有的节点两两链接(下命名为全联通),而最后一步的前一步的状态是什么呢,这明显是确定的,就是一个节点单独,其他节点仍然全联通,再操作一个节点呢,不难发现,现在是两个节点全联通,剩下的全联通。
以此类推,不难证明,我们回推的图必然是两个全联通图或者是本身就是满足。
由此得到结论,如果所有的节点与其边能够构成两个或一个全联通,那么就输出 DA。
怎么判断是否全联通呢?我们只用判断边数与点数的关系即可。
若
至于连接的过程,我们用并查集维护即可。
for(int i=1; i<=m; ++i) { int u=read(),v=read(); u=find(u),v=find(v); if(u==v) edge[u]++; else { fa[v]=u; siz[u]+=siz[v]; edge[u]+=edge[v]+1; } } int cnt=0,flag=0; for(int i=1; i<=n; ++i) { if(fa[i]==i) { ++cnt; if((!check(i))||cnt>2) { cout<<"NE"; return 0; } } } cout<<"DA";
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!