首页 > 其他分享 >P5659 [CSP-S2019] 树上的数

P5659 [CSP-S2019] 树上的数

时间:2023-11-01 09:44:42浏览次数:35  
标签:rt 结点 一条 P5659 决策 该点 S2019 删边 CSP

相信大家都看过题,但还请搞清楚是数对应结点编号。这里用 \(a_i\) 表示 \(i\) 号结点对应的数。

对于 \(n\leq 10\) 的数据,全排列出删边的顺序然后模拟,取字典序最小的方案。

对于菊花,仍然考虑删边的顺序,假设删边依次是 \(rt\to v_1,rt\to v_2,\cdots,rt\to v_{n-1}\)。

因为每删一条边,对应的叶子就会确定下来,所以最终 \(a_{rt}\to v_1,a_{v_1}\to v_2,a_{v_2}\to v_3,\cdots,a_{v_{n-1}}\to rt\)。

构成了一个环,也就是说我们只需要在贪心的时候保证最终能形成一个环。

用并查集维护连通性(其实就是若干条链),再用一个数组记录每个结点是否为链头,每次连边的时候保证不在同一连通块并且保证出点是链头即可。

是否是链尾不用记录,因为我们是从小到大枚举数字的,不会重复访问某个结点。

最后把剩下一条链的头尾相连即可成环。


现在来解决链。

建议先手摸一下搞清楚存在某个数被顺路带到相应点的情况。

同样从每个数的最终归宿入手。假设我们想让 \(a_u\to v\)。

显然,\(u\to v\) 路径上的边必须依次删,否则走不通。

其次,\(v\) 和 \(u\) 不在路径上的那两条边要先删。

考虑对于每个点维护一个标记表示该点两侧的两条边的删除顺序:没有限制、先左后右、先右后左。

每次贪心时向左向右找最小结点编号,要满足先前的标记。然后打上新标记。


经过前两档部分分的提示,相信大家已经有那么一点点的感觉了。

同样从小到大枚举每个数再枚举终点。问题就是哪些路径能不破坏先前的决策:

  • 起点出发的那一条边必须是起点的最先删边。
  • 抵达终点的那一条边必须是终点的最后删边。
  • 路径上相邻的边在它们共有的点那里必须是连续删除的。

考虑把每个点的边单独拉出来仿照菊花的做法建立一张图,这样就可以通过连边形成决策链(前一条删的边向后一条删的边连边)的方式钦定删边顺序。

成为最后删边的条件:

  • 出点尚未成为过终点。
  • 该边不存在作为连续删的前一条边的约束。
  • 除了该边外出点的决策已经全部完成;或者最先删边(暂时不存在也可以)和该边不位于同一条决策链。

成为最先删边的条件:

  • 入点尚未成为过起点(同样不用判)。
  • 该边不存在作为连续删的后一条边的约束。
  • 除了该边外入点的决策已经全部完成;或者最后删边(暂时不存在也可以)和该边不位于同一条决策链。

成为中间连续两条边的条件:

  • 入边不是该点最后删边或者该点只存在一条边。
  • 出边不是该点最先删边或者该点只存在一条边。
  • 两边不在同一条决策链中。
  • 入边不存在作为连续删的前一条边的约束。
  • 出边不存在作为连续删的后一条边的约束。
  • 连接两条决策链后中间点的决策已经全部完成;或者最先删边和最后删边仍然不位于同一条决策链。

标签:rt,结点,一条,P5659,决策,该点,S2019,删边,CSP
From: https://www.cnblogs.com/landsol/p/17802345.html

相关文章

  • P5666 [CSP-S2019] 树的重心
    考虑一个结点在什么情况下会成为重心。随便钦定一个根结点。对于结点\(u\),假设割掉了其子树\(v\)中的某条边或连接\(u\)和\(v\)的边,形成了一棵大小为\(k\)的新树。令\(mx\)表示除\(v\)子树外最大的子树大小(或\(n-siz_u\))。如果\(u\)成为了重心根据定义有\(2\ti......
  • HN CSP-2023 游祭
    以下时间均以初赛为\(0\)点(2023.09.16)Day-3免作业条批了,不用写作业了。Day-2不用写作业,晚上就随便搞搞,模拟了一下之前的csp-s初赛,打的还行罢。Day-1最后一天了,冲刺初赛!晚上有洛谷入门赛,当信心赛打了,rk69。有一道题没去想就被准点放学赶出机房了,回去也没时间写。......
  • CSP-S2 好似记
    CSP-S2好似记似了,但还是发一下。一周前教练让写的。1min发呆5min缺省源10min通看一遍题5min仔细看T1,大概是一个简单搜索5min仔细看T2,大概是一个简单DP5min仔细看T1,5min仔细看T2,5min仔细看T1,5min仔细看T2,5min,看T1题面+模拟样例。看不懂。5min,......
  • P5404 [CTS2019] 重复 题解
    题目链接观察题目,我们发现直接计算是困难的,先构造单个合法的\(T\)分析其性质。为了构造出\(T\),先考虑构造时\(T\)时什么时候会出现不合法的情况,此时\(T\)会有一段和\(S\)相同的前缀,且这段前缀后面跟着的字符比\(S\)所跟的小。为了避免这种情况出现,我们需要在每次添......
  • CSP-S 2022 游记&总结
    智慧神说要写总结,所以就叫总结啦Day-1上午收拾了下行李,中午出发坐高铁去九江了,高铁上本来想临时学一下class的用法的(说不定用得上),结果看着CSDN竟然睡着了......下午四点左右到了,九江在下小雨(话说赣州好久没下雨了QWQ),忘记带伞了,最后还是蹭cjc的伞去的宾馆。晚上收手机前打......
  • CSPRO 历届题目与题解
    官方题目链接:http://118.190.20.162/\(\Huge目录\)201609201612201709202104202109202112202203202206202209202303202305202309\(\Huge\text{CSP201609}\)火车购票问题描述请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。假设一节车厢......
  • CSP-S 2023 邮寄
    前言先咕着,等什么时候心情好了再继续写。省流云斗OJ:T1100,T235,T3100,T40正文周五中午出发去九江,做的是高铁?路上看完了三本小说(但其实都是之前看过的),终于是到了九江。做出租车做了一个小时,收费73RMB(好贵QAQ),但是后来好像报销了???晚上和小A住一起(想吃外星人酿的苹果了)。晚......
  • [CSP-S2020] 儒略日 题解
    [CSP-S2020]儒略日今儿终于做掉困扰多年的题目了,其实想好细节也不难。容易发现儒略历和格里高利历的润年判断方式不一样,并且中间有消失的十天,计算起来相当不方便。所以我们可以首先计算出\(-4713.1.1\)~\(1582.10.4\)会经过多少天,可以通过一天一天暴力跳的方法计算出需要\(......
  • CSP-J 前三题详解
    没写完。先补会儿文化课作业,等会再回来继续写。T1P9748[CSP-J2023]小苹果令苹果数量为\(\texttt{n}\)。容易发现,拿苹果就是每三个一组,取第一个。需要注意的是,如果以三个一组来考虑拿苹果,最后几个苹果不满三个时也应该算一个组,第一个也要拿走。形式化的,即当\(\texttt{n}......
  • 周藤 CSP-2023游记
    Day-inf~Day-2基本上是考试状态,每天我都是自己取随机题目做,不过也保证了落实量每场模拟赛发挥基本上是不是特别稳定,考得好的时候AK了,考不好的时候只有300分,反正同届差不多第一吧。。。不过还被几个人诅咒爆零了,不过没事,一交解千愁/seDay-1教练说了考试注意事项,然后就去娱......