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

CF862B Mahmoud and Ehab and the bipartiteness(二分图的性质)

思路:一个二分图是由两个集合组成的,同一个集合中的节点间不能连边,所以一个二分图最多有cnt[1]*cnt[2]条边,题目给出一个树的n-1条边,要我们添加最多的边数使他成为二分图,添加的边数就是cnt[1]*cnt[2]-n+1条,所以我们先用dfs对每个节点进行染色,计算出两个个集合的节点数

Code:

constexpr int N=2e5+5,mod=1e9+7;int n;
int h[N],e[N],ne[N],idx;
int color[N],cnt[4];void add(int a,int b)
{e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}void dfs(int u,int c)
{color[u]=c;cnt[c]++;for(int i=h[u];~i;i=ne[i]){if(!color[e[i]]) dfs(e[i],3-c);}}void solve()
{ cin>>n;memset(h,-1,sizeof h);for(int i=1;i<=n;i++){int a,b;cin>>a>>b;add(a,b),add(b,a);}  dfs(1,1);int sum=cnt[1]*cnt[2];cout<<sum-n+1;
}

http://www.lryc.cn/news/486909.html

相关文章:

  • React Native 全栈开发实战班 :数据管理与状态之React Hooks 基础
  • 传奇996_22——自动挂机
  • faiss 提供了多种索引类型
  • 比rsync更强大的文件同步工具rclone
  • 《业务流程--穿越从概念到实践的丛林》读后感一:什么是业务流程
  • 解决docker mysql命令行无法输入中文
  • 基于Java Springboot城市公交运营管理系统
  • Lc70--319.两个数组的交集(二分查找)---Java版
  • 亿咖通科技应邀出席微软汽车行业智享会,分享ECARX AutoGPT全新实践
  • Python教程:运算符重载
  • AWTK VSCode 实时预览插件端口冲突的解决办法
  • 【MySQL系列】深入理解MySQL中的存储、排序字符集
  • RPC-健康检测机制
  • 关于Java处理Excel常规列表记录,并入库的操作
  • 深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
  • 计算机网络安全 —— 对称加密算法 DES (一)
  • 5. ARM_指令集
  • Jenkins的pipeline Script的 每个组件的详细讲解
  • Tomcat 和 Netty 的区别及应用场景分析
  • 6.C操作符详解,深入探索操作符与字符串处理
  • 生数科技发布 Vidu 1.5 新版本,引领视频大模型新潮流
  • CentOS 7 aarch64停止更新后安装gcc8 —— 筑梦之路
  • WPF下 DataGrid加入序号列
  • iOS UI 自动化 手势右滑退出当前页面
  • 《MySQL 实战教程:从零开始到高手进阶》
  • 第27天 安全开发-PHP应用TP 框架路由访问对象操作内置过滤绕过核心漏洞
  • 应用系统开发(12) Zync中实现数字相敏检波
  • 栈Stack和队列Queue
  • uniapp 微信小程序地图标记点、聚合点/根据缩放重合点,根据缩放登记显示气泡marik标点
  • Percona XtraBackup备份docker版本mysql 5.7