07-19 题解

B

思路

实质 : 有一个完全图, 删掉一些边, 然后在图上找一棵生成树

但是图的边数是 n2 级别的, 极其稠密

找生成树的步骤:从一个点开始, 把与它相连的, 不在同一连通块的点连在一起

所以我们只要确保每次都能在尽量少的步数内找到一个合法点

一共有 n 个点, 确定一个点之后, 在剩下的点里面随便找一个, 最多总共只会失败 m 次

其余细节略过 ^_^

代码

D

思路

先把题意理解清楚:

​ 找 k 个不相交的连通块, 点权平均值最大

显然, 选大小相等的连通块才能使得平均值最大, 否则我们只取一堆连通块中最大的平均值会更小

所以我们要做的就是找出树上最大的连通块, 再统计个数即可(因为有负点权, 所以求最大连通块是有意义的)

第一问用普通的树形 Dp 即可完成

统计个数时, 只需要从下往上统计, 遇到 dp[x] = k 的个数 + 1, 再把他的 dp 值设置为负无穷即可(避免多次统计), 这样对点权的利用率最大, 不劣

代码

F

思路

首先, 每一轮都可以重新分组, 所以这不是一个树形结构!!!

然后贪心即可

实力最大的肯定要贿赂, 然后实力最大的 n / 2 个人都可用了

考虑其后 n / 4 个人时, 这 n / 2 个人和去掉他们以后实力最强的那一个(an/2) 都可选, 从里面取出花费最小的即可

以此类推

代码

G

思路

首先, 两个点的权值相同当且仅当他们连接的边集相同(包括自己)

按这个重新分组, 组和组之间连边

如果一个组的出度 > 2, 则无解(中心点为 x, 其他两个为 x - 1, x + 1, 剩下的一个就没办法了)

再者, 如果有环(一定是 >= 4 元的, 3 元的边集相同, 归在同一组), 那么也无解

细节略

代码

题目出处

CF653E Bear and Forgotten Tree 2

CF965E Short Code

CF1260E Tournament

CF623B Array GCD

CF1088E Ehab and a component choosing problem

CF1139D Steps to One

CF794D Labelling Cities

posted on   Bubble_e  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话



点击右上角即可分享
微信分享提示