CF F. Royal Questions kruskal】的更多相关文章

每一个 $A$ 必须和指定的唯一的 $B$ 匹配,转化成图论关系就是 $A$ 和 $B$ 之间有若干条连边,每个边有一个边权,而该边权只能代表一对 $A,B$. 这其实就是一个基环树的结构. 所以只需跑一个最大基环生成树森林即可. #include<bits/stdc++.h> #define ll long long #define maxn 200004 using namespace std; void setIO(string s) { string in=s+".in&qu…
[CF875F]Royal Questions 题意:国王的n个王子该结婚了!现在从外国来了m位公主,第i位公主的嫁妆是wi.由于进步思想的传播,每个公主在选择配偶的事情上是有自主权的,具体地,每个公主愿意从两个王子ai和bi中选取一个托付终生.而王子们就比较倒霉了,他们只能听从父王的安排.但是国王的目的并不在于为王子找到配偶,而是为了获得更多的嫁妆.现在国王可以任意安排哪个王子和哪个公主结婚(前提是公主愿意),并且不必为每个王子和公主都找到配偶,他想知道他最多能获得的总嫁妆是多少. 题解:标题…
题目传送门:http://codeforces.com/problemset/problem/875/F 题意:有$N$个王子和$M$个公主,每个公主或王子都只能选择至多一个王子或公主作为自己的结婚对象(王子选择公主,公主选择王子不然还怎么选).每个公主有且仅有两个中意的王子$a,b$,她只会至多选择其中一个作为自己的结婚对象,而如果某个公主选择了自己的结婚对象,就会给出$w$的嫁妆.求在满足所有公主的条件的情况下能够给出的最大嫁妆.$N,M \leq 2 \times 10^5 , w \le…
F. Shovels Shop time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There are nn shovels in the nearby shop. The ii -th shovel costs aiai bourles. Misha has to buy exactly kk shovels. Each sho…
题意 给一个无向加权联通图,没有重边和环.在这个图中可能存在多个最小生成树(MST),你可以进行以下操作:选择某条边使其权值加一,使得MST权值不变且唯一.求最少的操作次数. 分系:首先我们先要知道为什么会出现多个最小生成树的情况? 因为有些边的权值是相同的 , 所以在构造最小生成树的时候 ,我们是可以选择不同的边 , 构造出不同的最小生成树: 如果我们要是生成的最小生成树是唯一的 , 那我们每一次的加边十都只能是一种选择 也就是说,在构造过程的某一次抉择中,如果有多条边,他们的权值均最小,且合…
这题这场比赛一堆人秒切..果然还是我太菜了吗 题意:二分图,右边$m$个点每个点$i$向左边有且仅有两条连边,边权都是$a_i$.求最大匹配. 一个朴素思想,二分图匹配,用贪心带匈牙利搞一搞,但是复杂度$O(mn)$.````` 注意字眼“只能选一次”.对于同一个点连出的两条边只能择一.也就是说,左边由若干个点对,每选其一有一个代价.那么,不妨将这个点对连边,$x\to y$,则表示$y$被选了.这样,每个点最多只能被选一次,入度至多为1,也就是说是一个最大的基环树和树的森林,然后套板子就好了.…
https://codeforces.com/contest/1154/problem/F 给定m个折扣 每个折扣的{x,y}的意思是每次购买如果买到确切的x只铲子就其中的最便宜的y只铲子免付: 先贪心一波,因为要买k只,而不管折扣怎么变,怎么买,我们都要买原价最便宜的k只铲子,这贪心是对的 接着就选择折扣offers ,明显要dp解决,贪心贪不出(复杂度太高): 设dp[i]表示买i只铲子的最小花费: 所以转移方程:dp[i]=min(f[i],(选择折扣的处理)): #include<bit…
我还以为是什么板子题呢... 我们把儿子当做点, 公主当做边, 然后就是求边权值最大基环树森林. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair<LL, LL> #define PLI pair<LL, int> #define PII pair<int, int> #de…
传送门 似乎可以按边权排序后二分图匹配 这里给一个复杂度稳定的算法 把一个公主能匹配的两个点连边,然后依次加边,每当加到一个大小为\(n\)的连通块中有\(n\)条边之后,这时形成了基环树,将这些边定向,可以使得每个点入度均为1,也就是每个点都有合法匹配(对于一棵树,有\(n-1\)条边,它们所代表的匹配也是合法的) 于是可以把所有边按边权降序排序,每次加一条边,如果使得两个不相连的连通块连通,并且连通后不超过一个环,或者是使一个无环连通块出现环,答案就可以加上这条边的边权.注意如果连通块有环要…
题目意思: 给出你一颗带点权的树,dist(i, j)的值为节点i到j的距离乘上节点j的权值,让你任意找一个节点v,使得dist(v, i) (1 < i < n)的和最大.输出最大的值. 题目分析: 首先如果你可以熟悉的使用树形dp的话 , 可以很快的意识的先从1号点开始dfs一遍,然后通过一些奇怪的方式,再dfs一遍得到其他点的贡献.无所以我们需要找到一个递推式是满足我选择其他号码为根时候,可以很快的得到答案 . 现在假设有两个节点v , fa ; v 是 fa 的儿子节点 , 根据dp的…