当前位置: 首页 > news >正文

【P2860】[USACO06JAN] Redundant Paths G - Harvey

题意

给定一个连通图,求最少要加多少条边使得图无割边。

思路

首先,我们可以先缩点再进行考虑。
缩点后整个连通图变成一棵树,为了使连边后不出现割边,可以将所有度为 \(1\) 的点两两连边,如果度为 \(1\) 的点的个数为奇数,则可以往任意一个点连边,连完之后所有点的度都大于等于 \(2\),此时可以证明连通图是一个边双连通分量,所以得出结论:连边数等于度为 \(1\) 的节点个数除以 \(2\) 向上取整

code

#include<bits/stdc++.h>
#define ll long longusing namespace std;const ll N = 5e5+5,M = 2e6+5;
ll n,m;
ll x,y;
ll son,cnt,tot,idx;struct edge{ll to;ll next;
}e[M<<1];ll head[N],dfn[N],low[N],vis[N],dcc[N],edcc[N],sum;
void add(ll u,ll v){++tot;e[tot]=(edge){v,head[u]};head[u]=tot;
}
stack<ll> s;
void tarjan(ll u,ll fa){dfn[u]=low[u]=++cnt;s.push(u);for(int i=head[u];i;i=e[i].next){ll v=e[i].to;if(v==fa)continue;if(!dfn[v]){tarjan(v,u);low[u]=min(low[u],low[v]);if(low[v]>low[u]){dcc[v]++,dcc[u]++;}}else {low[u]=min(low[u],low[v]);}}if(low[u]==dfn[u]){sum++;ll tt;do{tt=s.top();s.pop();edcc[tt]=sum;}while(tt!=u);}
}int main(){cin>>n>>m;for(int i=1;i<=m;i++){cin>>x>>y;add(x,y),add(y,x);}tarjan(1,-1); for(int i=1;i<=n;i++){if(dcc[i]){vis[edcc[i]]+=dcc[i];}}ll ans=0;for(int i=1;i<=sum;i++){if(vis[i]==1)ans++;}cout<<(ans+1>>1);return 0;
}
http://www.gsyq.cn/news/10938.html

相关文章:

  • 【CV】GAN代码解析 image_folder.py
  • react使用ctx和reducer代替redux
  • 算法学习笔记:支配对
  • 西电PCB设计指南第5章学习笔记
  • ImageMagick - 关于图片压缩,通过dk整理的一些可用指令 - window64
  • 黄金、原油期货数据API对接文档
  • 我的笔记方案
  • 聊聊前序、中序、后序表达式
  • flink书籍 - --
  • Asp.Net Core 鉴权授权
  • 遇到一款无人机,上面有安全模式和强力模式,十分迷惑二者区别,问了技术说是和碰撞指数有关,涨知识
  • 直播预告| PostgreSQL 与 IvorySQL 在云原生时代的演进与实践
  • 金蝶AAS (Apusic Application Server) v10 部署SuperMap iServer 2025 详细教程
  • AI智能会话原型解析:知识问答与知识库管理的设计思路(附模版)
  • Linux - Nginx 文件访问403 forbidden = 授权 chmod -R 777 文件名称
  • 阻抗匹配技术:信号完整性与功率传输的基石​​
  • PySide6 之自定义弹出框
  • HTTP3与HTTP2的性能对比
  • 芯脉:面向高速接口的SoC架构与完整性设计<3> - 教程
  • 学习笔记_在Python中使用微信扫码功能(OpenCV WeChatQRCode)
  • 国标GB28181视频平台EasyCVR如何构建安防监控“中枢神经”?
  • 在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名餐饮菜谱应用需求洞察
  • 深入解析:一文详解回归分析的探索、分析、检验阶段,以Stata和SPSS为例
  • Vue 包依赖总结
  • 笔记_OpenCV4.5.1新增微信QRCode解码功能
  • 完整教程:模电基础:基本放大电路及其优化
  • 空间复杂度和时间复杂度
  • 实用指南:U盘歌单管理器 (专业车载音乐播放列表制作工具)
  • iOS 26 性能测试实战,如何评估启动速度、CPUGPU 负载、帧率与系统资源适配(uni-app 与 iOS 原生应用性能方案)
  • unity确定性帧同步框架