|
|
无法接受自己sT1T2没写出来
UPD 老师已经开大时间限制 已加上第二次评测的记录
我在写这篇题解的时候cogs上时间限制还是1秒,cogs评测机显然不符合CCFIntel Core Ultra 9 285K CPU @ 3.70 GHz的标准,在洛谷和云斗AC的代码,再加上卡常也88分,最慢的1.099s,所以我打扰了老师开大时限,但老师可能比较忙没有回复,所以这篇题解在cogs上的分数按照1s为准。 题意给你一张$N$个点无向图,保证任意两个点之间都是联通的。
另外还有$K$个额外的点,你可以从这$K$个点里任意选择若干个点,选择第$j$个点的代价为$c_j$,然后对于每个选择的点都可以往原本$N$个点连无向边,第$j$个额外点对第$i$个原有点连边的代价为$a_{j,i}$。
现在求出这张图的MST。
$1 \leq N \leq 10^4$
$1 \leq M \leq 10^6$
$0 \leq K \leq 10$
思路
考场淘汰回放:
把T1当成dp死做半天做不出来之后看第二题,一眼看第二题,先写出了60分左右的解法,代码还写了半天,结果一直以为和最短路有什么关系,恶心半天写不出来了
40~60分
直接把所有的边放到图里,包括额外点的连边。
排序所有边之后,枚举选额外点的状态跑kruskal即可。
粗略估计时间复杂度$O(2^k * (M+NK))$(一共会有$M+NK$条边,枚举状态$2^k$)
不是满分,来看我回忆代码,不加赛时卡常,在cogs上就32分 云斗上80分 洛谷上88分
UPD:开大时间限制后cogs80分
http://218.28.19.228:8081/cogs/submit/code.php?id=7XieaPkPU
https://www.yundouxueyuan.com/record/69072490b8ccc474dc719cef
https://www.luogu.com.cn/record/245035597
100分
我们最终选的边肯定包括了不考虑额外点的最小生成树里,所以先对原图跑一遍最小生成树,只保留树边,然后再枚举状态跑kruskal其实就做完了。
时间复杂度$O(M log M + 2 ^ k * (N - 1 + NK))$
目前卡常在cogs88分,洛谷和云斗不卡常就是满分
UPD:100分了
题目4197 [CSP-S 2025 T2]道路修复(民间数据)
AAAAAAAAAAAAAAAAAAAAAAAAA
2
1 条 评论
2025-11-03 23:24:38
|