3206: [Apio2013]道路费用 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 568  Solved: 266[Submit][Status][Discuss] Description   Input 第一行包含三个由空格隔开的整数N,M和K. 接下来的 M行描述最开始的M 条道路 这M行中的第i行包含由空格隔开的整数ai,bi和c i,表示有一条在a i和b i之间,费用为c i的双向道路. 接下来的K行描述新建的K条道路. 这 K行…
3206: [Apio2013]道路费用 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 536  Solved: 252[Submit][Status][Discuss] Description Input 第一行包含三个由空格隔开的整数N,M和K. 接下来的 M行描述最开始的M 条道路 这M行中的第i行包含由空格隔开的整数ai,bi和c i,表示有一条在a i和b i之间,费用为c i的双向道路. 接下来的K行描述新建的K条道路. 这 K行中的…
首先我们强制要求几条待定价的边在MST中,建出MST 我们发现这个MST中原来的边是一定要被选上的,所以可以把点缩起来,搞成一棵只有$K$个点的树 然后$2^K$枚举每条边在不在最终的MST中,让在最终MST中的待定价的边尽量大,只需要在Kruskal的时候暴力更新每条边的定价即可 时间复杂度$O(m * logm + 2^K * K^2)$ /************************************************************** Problem: 3206…
题目传送门 道路费用 格式难调,题面就不放了. 分析: 这是一道要细(yan)心(jing)的生成树的好(gui)题. 首先我们看到$k$的范围非常小,那么我们就可以直接$2^k$枚举每一条加边是否选择.然后我们再按权值大小依次加原边并且更新可以影响的加边的权值上限,再树形DP求解.但是这样复杂度是$O(2^k+NM\log M)$,需要考虑优化. 我们能发现,不管加边选不选,有一些边都一定会加入到生成树中,那么我们就把这些边提前连接,然后把产生出的联通块缩点,然后就能形成一个$k+1$个点的新…
参考:http://hzwer.com/6888.html 把k条道路权值设为0,和其他边一起跑MST,然后把此时选中的其他边设为必选,在新图中加上必选变缩成k个点,把所有边重标号,枚举k跳边的选取情况,和其他边做MST,建出树,k条边的权值在树上取min #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=300005,inf=1e9; int…
题目描述 幸福国度可以用 N 个城镇(用 1 到 N 编号)构成的集合来描述,这些城镇 最开始由 M 条双向道路(用 1 到 M 编号)连接.城镇 1 是中央城镇.保证一个 人从城镇 1 出发,经过这些道路,可以到达其他的任何一个城市.这些道路都是 收费道路,道路 i 的使用者必须向道路的主人支付 ci分钱的费用.已知所有的这 些ci是互不相等的.最近有K条新道路建成,这些道路都属于亿万富豪Mr. Greedy. Mr. Greedy 可以决定每条新道路的费用(费用可以相同),并且他必须在明天宣…
link Description 幸福国度可以用 N 个城镇(用 1 到 N 编号)构成的集合来描述,这些城镇 最开始由 M 条双向道路(用 1 到 M 编号)连接.城镇 1 是中央城镇.保证一个 人从城镇 1 出发,经过这些道路,可以到达其他的任何一个城市.这些道路都是 收费道路,道路 i 的使用者必须向道路的主人支付 ci分钱的费用.已知所有的这 些ci是互不相等的.最近有K条新道路建成,这些道路都属于亿万富豪Mr. Greedy. Mr. Greedy 可以决定每条新道路的费用(费用可以相…
不难想到可以\(2^k\)去枚举\(k\)条新边的选择方案,然后加入原图中的边来使图连通,用当前方案的收益去更新答案,但是这样复杂度过不去. 可以先把\(k\)条新边都连上,然后再加入边权从小到大排序过后的原图的边,直到图连通.后加入的原图的边在任何一个新边的选择方案都是要加入的,因为找这些边时是选了所有\(k\)条新边,其他方案只会比这时选择更少的新边,所以为保证连通,这些后加入的边肯定是要选择的,可能还要加入更多的原图中的边,同时这些边是按边权排序后的,所以也能满足题目中最小生成树的要求.…
先把已有的边并查集了,然后MST即可 记得开double #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const int N=1005; int n,m,f[N],con,tot; double x[N],y[N],ans; struct qwe { int u,v; double w; }e[N*N]; bool c…
(总计:共66题) 4.18~4.25:19题 4.26~5.2:17题 5.3~5.9: 6题 5.10~5.16: 6题 5.17~5.23: 9题 5.24~5.30: 9题 4.18 [BZOJ3786]星系探索(伪ETT) [BZOJ4337][BJOI2015]树的同构(树的最小表示法) [BZOJ3551][ONTAK2010]Peaks(加强版)(Kruskal重构树,主席树) [CTSC2017]游戏(Bayes定理,线段树) 4.19 [CTSC2017]吉夫特(Lucas定…