zoukankan      html  css  js  c++  java
  • CSPS模拟 62

      婚礼现场系列

      

      T1 $gragh$

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

      T2 $permutation$

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

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

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

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

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

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

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

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

        有点绕。

      T3 $tree$

        年度最滑稽题

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

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

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

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

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

        

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

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

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

  • 相关阅读:
    Win2003 远程控制管理工具tsmmc 移植到XP连接多个服务器远程桌面的方法
    c++中new char(10) 和 new char[10]的区别
    64位ubuntu上安装 hadoop2.4.0
    g++编译安装
    atoi()函数实现
    LRU Cache
    Longest Palindromic Substring
    Java 中 == 和 equal 的区别 (String)
    抓取HTML
    验证码居中
  • 原文地址:https://www.cnblogs.com/yxsplayxs/p/11628552.html
Copyright © 2011-2022 走看看