CF1559D2 Mocha and Diana (Hard Version)
时间:2021-08-17
本文章向大家介绍CF1559D2 Mocha and Diana (Hard Version),主要包括CF1559D2 Mocha and Diana (Hard Version)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
CF1559D2 Mocha and Diana (Hard Version)
思路
以下,两图分别称为 A , B
首先,来证明一个贪心策略:有能连的边就连,或者说连边不会影响最大值
考虑一种特殊情况,A 只有两个联通块,记为 x 和 y , B 只有两个联通块
如果从 x 中选出任意一点都无法连接到 y 中任意一点,那么说明 x 中任意一点和 y 中任意一点在 B 中在一个连通块内
这样推得 B 仅有唯一联通块,矛盾
所以上述情况一定可以连一条边
有一个显然的东西,连一条边会让 A 和 B 的联通块个数同时减 1 ,所以不难发现如果有 A 或 B 有一边成树了,那么一定没有可以连的边了
那么现在假设 A 有 r 个联通块, B 有 c 个联通块
不妨假设 A 和 B 中点 1 所在的联通块分别为 pa , pb
那么,将 A 中除去 pa 之外的视为一个整体, B 中同理,就转换为了上面的特殊情况
于是按上述可以一直连边直到一边成为一棵树,这显然也是能连的边数的最大值
那么贪心策略得证
考虑实现
首先,贪心将所有能和 1 连的点连接
那么现在图上只有三类点,在 A 和 B 与 1 联通,仅在 A 与 1 联通,仅在 B 与 1 联通
首先发现,第一类点没任何用,它不能任何点相连
然后显然的,一个第二类点可以和任意一个第三类点相连,因为他们不在同一个联通块
于是就可以贪心的连接了
只是要注意,连接可能会使后两类点变为第一类点,判断一下就好
代码
//Nope
原文地址:https://www.cnblogs.com/ullio/p/15154454.html
- ASP.NET Web API 接口执行时间监控
- 这么多前端优化点你都记得住吗?
- 愚蠢的”记住“密码方式终于还是出了问题
- C#获取本机可用端口
- 想知道你的对象用微信和谁聊得最多吗?一个代码告诉你
- objective-C中的接口与泛型
- 段永朝:天性,互联网的灵性回归
- objective-C中的Class(类类型),Selector(选择器SEL),函数指针(IMP)
- 数据中心进水了怎么办?数据中心如何防洪?
- 戴若犁:虚拟中的现实
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)
- objective-C中如何判断一个类中有没有定义某个方法
- Steve Boswell:智能口罩让PM2.5滚蛋
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Kotlin---data class
- sqlmap的使用方法
- 从0开始做播放器---音频播放有杂音且音调异常
- 线上故障实录-一大早服务就不可用了?
- mapboxGL中popup遮挡的优化
- SQL注入的基本步骤
- JS 变量作用域导致的一个坑
- 池化技术到达有多牛?看了线程和线程池的对比吓我一跳!
- Nginx 跨域 add_header 403状态下无效
- Cannot set property 'branchdata' of undefined
- 【每日一题】27. Remove Element
- 【CPP】《程序员面试金典》习题(1)——数组与字符串
- 【CPP】《程序员面试金典》习题(2)——链表
- 【CPP】《程序员面试金典》习题(3)——栈和队列
- PPYOLO:2020不容错过的目标检测调参Tricks