
最小生成树
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
checksum 2021Google Kickstart roundA
https://codingcompetitions.withgoogle.com/kickstart/round/0000000000436140确实有点巧妙,我还是菜,去年开始ks难度降低了,还只ak过一次,这次这题没写暴力排名掉到700了比赛的时候想到拆点然后费用流半天不知道怎么办,然而这题用很简单的贪心就能解决首先我们把每一行每一列拆成2n个点,如果(i,j)有一个-1,那就链接(i,j+n)边权为b[i][j]那么我们想到如果一条边有一个点的度数是1的话,他就可以被直接算出来,所以原创 2021-04-07 16:42:05 · 185 阅读 · 0 评论 -
gym102759D Just Meeting XXI Open Cup. Grand Prix of Korea
https://codeforces.com/gym/102759/problem/D自闭场,4题跑路,五点共圆和uestc7题也太猛了由于要满足不存在一个3元环中,一条边同时小于另外两条边,那么对于u-v这条边,如果u-w,w-v只有一边存在,那么另一边可以任意变的边就等于这两条边的较小值,如果两条边都不存在,就直接2条1就行了然后可以发现对于同一个联通分量两个点之间的边一定是确定的,且对于这个联通分量的最大或最小生成树,那些还无法确定的边等于这棵树上两个点路径上最小的那条边最优,而对于那些.原创 2020-10-29 20:32:22 · 690 阅读 · 0 评论 -
gym102391I Minimum Diameter Spanning Tree 带权最小直径生成树
https://codeforces.com/gym/102391/problem/I学习自https://blog.youkuaiyun.com/crazy_ac/article/details/8816877板题做了一个下午,头快想烂了首先找到图的绝对中心,然后由于边权不为1,所以把所有边权都*2,然后中心到其他点的距离也会是整数了,确定中心后就从u,v开始跑,记得dis[u],dis[v]要设为真正的初始值。#include<bits/stdc++.h>using namespac原创 2020-10-13 01:50:22 · 466 阅读 · 0 评论 -
codeforces160D Edges in MST
https://codeforces.com/problemset/problem/160/D其实以前18徐州现场做A的时候就思考过最小生成树哪些边是必选的,今天uoj群有人讨论这个问题,然后claris说必选就是桥边,于是搜最小生成树桥边搜出来了一个原题这题只有2300?感觉比一般的2400还要难,可能在以前是个Well Known的问题最小生成树很常见的性质:如果一条边能够是另外一...原创 2020-05-05 15:28:50 · 295 阅读 · 0 评论 -
codeforces1245D Shichikuji and Power Grid
https://codeforces.com/problemset/problem/1245/D讲讲我的思考历程看到题目觉得是一般应该是一维DP,枚举前i个位置上一个位置选在第j号位置的最小值是多少,然而这个二维不知道怎么搞。。。然后看了看F题感觉是个二进制下数位DP之类的,然而不太会搞,又回来想D那么我至少要知道我要选择哪一些建电塔把,那么应该是选择代价小的电塔建立,但是这样并不...原创 2019-11-02 15:37:46 · 204 阅读 · 0 评论 -
HDU2122
WA的不知所错时,可以重写一遍,比检查快的多。注意考虑极限情况,这题中n#include#include#include#define maxl 100100using namespace std;int n,m,sum;long long ans;int f[maxl];struct ed{int x,y,l;} e[maxl];bool yes;bool cmp(原创 2017-08-10 18:35:57 · 283 阅读 · 0 评论 -
HDU 4786
智商捉急。看了题解先判断图是否联通,然后优先选黑边。看白边最小选多少,再优先选白边,看白边最多选多少。于是从最小到最大都可以构成这样的生成树了。可以想象一下,既然已经可以联通成生成树了,那么黑边先选,再最小选出白边,一定存在许多白边可以替代黑边,多选一条白边,就一定找的出相应联通关系的黑边,一直到白边最多。#include#include#include#define maxl原创 2017-08-10 18:46:23 · 268 阅读 · 0 评论 -
codeforces 1108F 最小生成树并查集
让我想起了徐州的第一题。。。。还以为比那题更难第二天早上队友跟我聊了下这题,然后我发现这题就可以用我徐州第一题的错误的思路做(虽然那题因为数据特殊性A了。。。),我们开两个并查集,对于一段相同的边,f1表示这段相同的边之前的连接情况,然后从前向后枚举这段边,如果能连就连,只更新f2,如果不能连,去f1中看看是不是在同一集合,如果不在,说明这段边中在这条边之前有一条边跟这条边是等价的,这样就会形...原创 2019-01-24 15:05:35 · 506 阅读 · 0 评论 -
bzoj2654 wqs二分
因为18南京的B去学习了一个wqs二分是针对那种给你n个要你选k个使得最后答案最优(最大或最小),然后我对这每个物品增加一个权值,看他会选择几个,大于k就让权值变大(变大变小看情况),之后用dp算出这种情况下取了多少个物品,那么物品就会少选一点,小于k就让权值变小,那么就可以多选一点几何解释可以看这个博客(虽然还是很难懂):https://www.cnblogs.com/CreeperLK...原创 2019-08-03 09:42:53 · 244 阅读 · 0 评论