首页 > 旅游
头像 此在Dasein
发表于 2025-11-19 05:07:17
这是一个典型的 图论 + 二分答案 (Binary Search) 问题。我们需要结合 最小生成树 (MST) 的思想和 贪心策略 来解决。 核心思路 二分答案 (Binary Search): 题目要求找到最小的 。 如果我们设定一个阈值 ,国家修好了所有 的路。如果在这个 下牛牛能修通 展开全文
头像 爱音乐的博博
发表于 2023-07-22 16:25:04
本题是一道最小生成树的kruskal算法的题目 先用kruskal算法去记录最小生成树的最短边 然后根据题意所给出的要求去进行迭代更新sum,直至找到一个sum值大于牛牛所投入的资金c,输出最后令 sum>=c的损害值 #include<iostream> #include< 展开全文
头像 ddb酱
发表于 2025-11-19 10:06:13
#include <bits/stdc++.h> using namespace std; #define endl "\n" #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() 展开全文
头像 quchen666
发表于 2025-11-19 12:47:34
#include <bits/stdc++.h> typedef long long ll; const int N = 2e5+10; using namespace std; struct Node { int u,v; ll w; }e[N]; bool cmp( 展开全文
头像 Kato_Shoko
发表于 2025-11-19 14:15:45
我们不难发现答案是单调的(政府给得越多,我们越能多修路),贪心来说,我们需要修花费少的n-1条路,那么我们可以使用最小生成树找出需要修的边,再利用二分来查找政府的最小帮助的钱是多少。二分的时候不难发现,我们需要把修路花费钱多的路放在一开始来修,因为如果放在后面修,会累计出来,多增加k倍数的钱。 #i 展开全文
头像 Underage_potato
发表于 2025-11-19 14:33:24
显然只需要 MST 上的那 条边,先求一遍 MST 过程中把边拿出来。 然后找 的时候也不用二分,因为 取值一定是那些边的边权,遍历并判断就行了。 关于答案的计算,一开始只会修 次,因为就那些边,随便算算就行了。 Code: #include<bits/stdc++.h> us 展开全文
头像 smartiphone
发表于 2025-11-19 19:14:28
本道题算是最小生成树的变种吧,写的不是非常熟练,特别是并查集,太少写了,所以犯下了很多低级错误 #include<bits/stdc++.h> #define endl '\n' using namespace std; using ll = long long; class unit 展开全文
头像 czcczz
发表于 2025-11-19 22:40:04
#include<bits/stdc++.h> using namespace std; #define int long long const int N=4e4+10,M=2e4+10; int n,m,c; int f[N]; struct Way{ int dis; int 展开全文

等你来战

查看全部