尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

启发式合并 [USACO22DEC] Making Friends P

启发式合并 [USACO22DEC] Making Friends P
📅 发布时间:2026/6/20 18:32:02

题意

\(N\) 牛 \(M\) 关系,按照编号从小到大,牛依次离开,每一头牛离开时它认识的牛会互相认识,求最后新增了多少朋友关系。

\(N,M\le 2\times 10^5\)

解法

我们将操作看成每个点边集合的合并,尝试使用启发式合并解决问题。

但是直接做又发现没有办法搞,因为我们会算重很多,于是我们选择仅仅连一条边,从编号小到编号大。

这个样子我们并不会错过什么,因为边集的合并是从小节点开始的,我们贪心选择相连的最小节点合并一定是不劣的,所以就做完了,复杂度就是标准的启发式合并。

代码↓

点击查看代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MN=1e6+116;
int n, m, ans=0; set <int> G[MN];
signed main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin>>n>>m; ans=-m;for(int i=1; i<=m; ++i){int u, v; cin>>u>>v;G[min(u,v)].insert(max(u,v));}for(int i=1; i<=n; ++i){if(G[i].empty()) continue;ans+=G[i].size();int u=*G[i].begin();//最小的辣个G[i].erase(G[i].begin());if(G[u].size()<G[i].size()) swap(G[u],G[i]);for(auto v:G[i]) G[u].insert(v);}cout<<ans<<'\n';return 0;
}

相关新闻

  • 加密的病例单
  • 【多线程】什么是原子操作(Atomic Operation)? - 详解
  • 复刻江协旋钮控制模块

最新新闻

  • 2026年挖泥设备厂家推荐:潍坊晟河环保绞吸船/清淤机械全系解决方案 - 品牌推荐官
  • 终极指南:如何轻松在iOS 14-16.6.1上安装TrollStore
  • 奥博精密硅橡胶制品:o型橡胶密封圈等全系产品实力推荐 - 品牌推荐官
  • 8位MCU系统可靠性设计:从EFT/ESD防护到LVD与看门狗实战
  • 2026年真空热处理炉推荐:无锡四方集团真空炉业全系列解决方案 - 品牌推荐官
  • 珠海同米科技:机动车检测设备实力推荐,二维线/全车型检测设备全系供应 - 品牌推荐官

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号