昨天的题目有点奇怪,我就不写了...
今天的题目更奇怪,但是还是比较显然的。
第一题:给你一个无向图的最小割矩阵,然后让你还原这个图。
最小割最多n-1个,由某些显然的性质可知,最终的图是一个树。
然后尝试构造这棵树,怎么构造?
我先找到当前点集中最小的权值,然后依据这个值将点集划分成两块,分治,最后随意连条边即可。
check了一下,发现做法没问题。
正解是找到最大的边,如果这两个点未联通,连起来,否则根据情况判。可以理解为最大生成树。
只有80,我忘了判无解。
第二题:要求你在树上找到一个大小为K联通块,要求联通块的边的长度和*2-链的长度最小。
DP,我先YY了一个DP,设f[i][j]表示i为根的子树有j个点的最小联通块长度。g[i][j]表示i为直径的一端的最小长度。我发现我需要知道哪些点在最优答案中。
然后就有YY了一个做法是每隔K距离就以此点为根做DP,我发现成功率比较低...。因为要检查的点必须恰好是最优解直径的一端。
为了增强单次DP的效果,我又YY了一个Z[i][j]表示i节点是两直径端点LCA的状态,再纪录tt[i]表示以i为根的子树的答案。
最后的结果是我发现这个DP好像直接就能做了.....
死于转移写挂。还是只有80。
第三题:
神奇的hash,但我再也不想见到回文这两个字了....
时间: 2024-10-10 18:56:24