题目传送门:洛谷P5089。

题意简述:

一张 \(n \times m\) 的表格,有一些格子有标记,另外一些格子没有标记。

如果 \((r_1,c_1),(r_1,c_2),(r_2,c_1)\) (满足 \(r_1\ne r_2,c_1\ne c_2\))都有标记,那么可以不花费任何代价使得 \((r_2,c_2)\) 也有标记。

你也可以花费 \(1\) 的代价使得任意一个格子有标记。

问使得所有格子都有标记的最小花费

题解:

比赛时这题我想了很久,猜了一个奇怪的结论交上去就对了。

这里贴一下官方题解的证明方法:

建立一张二分图,左边的点代表 \(n\) 个周期,右边的点代表 \(m\) 个主族。

把每一个元素 \((x,y)\) 看作一条边,连接第 \(x\) 周期和第 \(y\) 主族。

那么我们的目标是是这个二分图变成完全二分图,也就是有 \(n \times m\) 条边。

考虑核聚变的条件:
\((r_1, c_1) + (r_1, c_2) + (r_2, c_1) \to (r_2, c_2)\)。

可以发现这个过程是不改变二分图中的连通分量的个数的。

而反过来,对于二分图中的某一个连通分量,也可以通过核聚变的方式,把这个连通分量变成“完全”的,也就是连接左右两部分的所有边都存在。

那么答案就是将这个二分图添加尽量少的边使得它联通的边数。

也就是:\(\text{连通分量的个数}-1\)。

思路很巧妙,代码并不难写:

 1 #include<bits/stdc++.h>
 2 int n,m,q,x,y,S;
 3 int v[400001];
 4 int h[400001],nxt[400001],to[400001],tot;
 5 inline void ins(int x,int y){nxt[++tot]=h[x];to[tot]=y;h[x]=tot;}
 6 void D(int u){
 7     for(int i=h[u];i;i=nxt[i])if(!v[to[i]])
 8         v[to[i]]=1, D(to[i]);
 9 }
10 int main(){
11     scanf("%d%d%d",&n,&m,&q);
12     while(q--) scanf("%d%d",&x,&y), ins(x,n+y), ins(n+y,x);
13     for(int i=1;i<=n+m;++i) if(!v[i]) ++S, v[i]=1, D(i);
14     printf("%d",S-1);
15     return 0;
16 }

转载于:https://www.cnblogs.com/PinkRabbit/p/10099209.html

洛谷 P5089: CodeForces #500 (Div. 1) B / 1012B : Chemical table相关推荐

  1. 【LGR-073】洛谷 7 月月赛 Div.2 B 混凝土数学

    题目描述: 点击这里 思路: 对于 30 % p t s ( n ≤ 200 ) , 30\%pts(n≤200), 30%pts(n≤200), 暴力枚举即可,时间复杂度 O ( n 3 ) O(n ...

  2. Codeforces与洛谷题目之间跳转油猴插件

    title: Codeforces与洛谷题目之间跳转油猴插件 date: 2023-05-04 15:32:39 categories: 其他 tags: 油猴脚本 Codeforces与洛谷题目之间 ...

  3. Educational Codeforces Round 81 (Rated for Div. 2) F.Good Contest \ 洛谷 划艇 组合 计数dp

    cf传送门 P3643 [APIO2016]划艇 文章目录 题意: 思路: 题意: aia_iai​在[li,ri][l_i,r_i][li​,ri​]等概率随机选一个数,求aaa数组不增的概率. 思 ...

  4. BZOJ4424 Cf19E Fairy(codeforces 19E/洛谷CF19E)

    树上差分 DFS BZOJ题目传送门 codeforces题目传送门 洛谷题目传送门 首先只有当图中没有奇环时一张图才能够二分图染色.因为只允许删一条边,那么答案就是所有奇环的交,并且奇环不能和偶环有 ...

  5. P8318 『JROI-4』淘气的猴子(【LGR-108】洛谷 5 月月赛 I JROI R4 Div.2)

    众所周知,jockbutt 是一个可爱的女孩纸. 题目描述 jockbutt 有一个正整数序列,长度为 n,分别为 a1,a2...an,她非常喜欢这个序列,平时都非常爱惜它们. 可是有一天,当 jo ...

  6. 洛谷千题复习计划(一)(Codeforces + AtCoder)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每天花一个小时简单复习一下我写过的洛谷的题目! 虽然还没有到千题,但是快了(等我复习完这些以后我 lu ...

  7. 【洛谷题解】P2433 【深基1-2】小学数学 N 合一

    目录 [深基1-2]小学数学 N 合一 题解 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 题目解析 问题 1~5 问题 6~10 问题 10~14 发牢骚 完整代码 谢谢 ...

  8. (洛谷入门系列,适合洛谷新用户)洛谷功能全解

    目录 前注 前言 第一章 进入方式 1.1 基础操作 1.2 两步验证 1.3 安全邮箱和安全手机 第二章 侧栏与主界面介绍 2.1 蓝底白色洛谷标志 2.2 "应用>>&quo ...

  9. 洛谷首页代码(百度编译器)

    洛谷是一个国内著名编程网站:分享一下他首页的未登录源代码: ​ <!DOCTYPE html> <html class="no-js" lang="zh ...

最新文章

  1. php程序里的configini_php中配置文件操作 如config.php文件的读取修改等操作
  2. EID:宏基因组测序在新发腹泻病毒鉴定中的应用
  3. 完胜 BERT,谷歌最佳 NLP 预训练模型开源
  4. node内存配置(--max-old-space-size)
  5. Java ClassLoader
  6. 【草稿】windows + vscode 远程开发
  7. 长春南关区净月大街附近都有哪些课后班?
  8. JAVA设计模式之抽象工厂模式和代理模式
  9. Java设计模式--解释器模式
  10. python库之pandas
  11. python基于base64模块实现图像数据编码处理、解码还原实践【解决解码数据损失问题】
  12. Linux系统启动简单流程:
  13. Navicat15 安装激活
  14. 利用datafaker批量生成测试数据
  15. 上海计算机一级和四六级,上海市关于英语四六级考试的改革通知
  16. win xp故障恢复控制台应用实例
  17. Python 实现英文新闻摘要自动提取 1
  18. 【翻译】代码指针完整性——Code Pointer Integrity
  19. mybatispuls中IService查询条件的使用(适用于单表查)
  20. 33岁想从头学做网页设计_您想如何学习网页设计?

热门文章

  1. mysql 区间/替换/自增/where与having/字段运算/关键词/修改字段
  2. not in和not exist的区别(转)
  3. 【python】IP地址处理模块IPy
  4. [唐诗]183清平调词三首-李白
  5. Linux下MySQL server和client安装
  6. 面试题 03.03. 堆盘子
  7. shell变量(包含标准shell)
  8. android动画帧率_Android流畅度之帧率
  9. arcgis中dem坐标定义_GIS基础-DEM Grid规则格网结构
  10. Python接口自动化测试系列文章汇总