CSPS模拟 62

  婚礼现场系列

  

  T1 $gragh$

    为了方便把边的贡献下放到点,跑一个生成树作为划分依据。

  T2 $permutation$

    由于在本题中,构造的变换方法保证只能邻项交换

    所以如果位置串字典序变小,权值串字典序也必然变小

    但是此结论不适合所有情况。

    考虑将读入的权值串转化成位置串

    题目变成了:邻项且权值之差绝对值大于k可以交换,求最后字典序最小串。

    一些情况下由于绝对值的限制,串中的两个数永远不能交换,这样的数有好多对。

    考虑拓扑+建边优化,只向离这个点后边且离它最近的 不能交换的点 建边,表示这两个点的相对位置永远不能交换(也就是目前这个点表示的位置上的权值永远小于被指向的点)

    最后堆优化拓扑排序,贪心给小权值分配小位置,得到的就是答案。

    有点绕。

  T3 $tree$

    年度最滑稽题

    考虑把边排序,从大到小插入边

    那么插入这条边后,它连接的两个点显然必须在排列中相邻

    如果不相邻的话那就会经过一些权值更小的边,本次贡献必然变小

    但是它们相邻的话,由于到下一个点必然经过比这条权值更小的边,之后的贡献不会变小

    然后两个点由于相邻了,就可以视作一个点(闭包?)了

    

    通俗地说,就是在较大边权的边形成的联通块里你可以乱走,反正最小值一定在跨出去的最后一步上取,从最大权边贪心取最大值,答案就等于边权的和

    又因为树联通所有的边都是必经边,所有边权和这个答案显然无法更优了

    于是把读进来的边权加在一起,输出出去。

猜你喜欢

转载自www.cnblogs.com/yxsplayxs/p/11628552.html