首页 > 代码库 > 0712

0712

 昨天的题目有点奇怪,我就不写了...

今天的题目更奇怪,但是还是比较显然的。

第一题:给你一个无向图的最小割矩阵,然后让你还原这个图。

最小割最多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,但我再也不想见到回文这两个字了....

 

0712