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

启发式合并 [PA 2014] Fiolki

关于启发式合并

在我们愉快打暴力的时候,我们会遇到需要合并一些数据的情况。

我们举一个相当简单的例子,我们需要很多次合并一些 vector,这个时候作为人类我们会想从小的里边取放到大的里边。

若我们需要大到小,就先反过来,再利用对应标记呼唤的方式来进行访问。

然而对于 stl 来世 swap 就可以。

整个过程是 \(nlogn\) 级别的。

对于任意一个元素,每一次被访问都会使得它所在的集合至少增长一倍,所以就是 \(nlogn\) 级别的。

[PA 2014] Fiolki

这个东西我们并不知道怎么做,但是发现如果我们在合并的过程之中可以维护每个集合的东西就可以做了。

考虑 vector 维护每个集合中存在的,可能的反应式(这个东西有严格的反应顺序)。

之后启发式合并两个,并查集方便我们检查反应是否可以进行。

非常完美做完了。

代码↓

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MN=1e6+116;
int father[MN], n, m, k, ans=0;
int g[MN], a[MN], b[MN], c[MN], d[MN];
int find(int x){if(father[x]!=x) father[x]=find(father[x]);return father[x];
}
vector <int> st[MN];
signed main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin>>n>>m>>k; for(int i=1; i<=n; ++i) cin>>g[i];for(int i=1; i<=n; ++i) father[i]=i;for(int i=1; i<=m; ++i) cin>>a[i]>>b[i];for(int i=1; i<=k; ++i){cin>>c[i]>>d[i];st[c[i]].push_back(i);st[d[i]].push_back(i);}for(int i=1; i<=m; ++i){if(st[a[i]].size()>st[b[i]].size())swap(st[a[i]],st[b[i]]);father[find(a[i])]=find(b[i]);vector <int> tmp;for(auto v:st[a[i]]){if(find(c[v])==find(d[v])) tmp.push_back(v);else st[b[i]].push_back(v);}sort(tmp.begin(),tmp.end());for(auto k:tmp){int minn=min(g[c[k]],g[d[k]]);ans+=minn*2;g[c[k]]-=minn;g[d[k]]-=minn;}}cout<<ans<<'\n';return 0;
}
http://www.gsyq.cn/news/13593.html

相关文章:

  • 完整教程:ISP的前处理和后处理是什么?
  • 《痞子衡嵌入式半月刊》 第 119 期
  • 运动控制卡排名
  • 基于Mysql+SpringBoot+vue框架-在线宠物用品交易网站的设计与实现 - 实践
  • labview打包应用
  • 完整教程:开源的 CSS 动画库
  • 【2025-09-27】连岳摘抄
  • CPU 测试脚本
  • Day23static详解
  • openssh升级
  • 实用指南:月匣 - 百度推出的AI情感陪伴与剧情互动应用
  • 完整教程:整合与超越:论“开源AI智能名片链动2+1模式S2B2C商城小程序”对传统红人直播带货模式的升维
  • 2025 最新隔音板厂家权威推荐排行榜:聚焦实力厂商,阻尼 / 聚酯纤维等全品类适配与标杆案例解析室外/KTV/隔音板安装/沈阳/ 厂房隔音板厂家推荐
  • 2025 年医疗器械注册咨询公司最新权威推荐排行榜:TOP 级服务商全流程能力解析,助力企业高效合规拿证医疗器械注册咨询//二类医疗器械注册咨询/三类医疗器械注册咨询公司推荐
  • 2025 年最新推荐地坪源头厂商权威排行榜:聚焦环氧 / 聚氨酯 / 固化剂等多类型地坪,精选 TOP5 优质企业水性聚氨酯/环氧/密封固化剂地坪施工厂商推荐
  • 算法篇
  • 如何找到当前计算机所有的UnrealEngine安装位置
  • 阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
  • 大型语言模型(LLM)分类与特性全解析 - 教程
  • C语言 - 左移、右移运算符
  • 格雷厄姆指数
  • reLeetCode 热题 100- 42 接雨水 - MKT
  • ssti模板注入
  • 2025 年章丘二手磁选机厂家最新权威推荐排行榜:TOP 级企业设备全型号覆盖与五年质保深度解析二手立环磁选机/二手华特磁选机/章丘二手磁选机厂家推荐
  • 数据集Dataset
  • 2025 年三维扫描仪厂家最新权威推荐排行榜:覆盖空间 / 高精度 / 专业 / 手持激光 / 工业等类型,精选实力企业深度解析
  • 题解:AT_abc425_f [ABC425F] Inserting Process
  • P11854 [CSP-J2022 山东] 宴会
  • 2025 年试验机厂家权威推荐榜:TOP5 优质厂家综合实力解析,助力科研与工业客户精准选型电子万能材料/橡胶拉力/塑料拉力/扬州拉力试验机厂家推荐
  • 跟Manus聊聊Bean生命周期设计哲学[From Manus]