重庆八中周赛 13
一言:
男人从小的时候就是无药可救的。
——秋之回忆
炸裂的一场,主将中的最低分,组长中的倒二。
忏悔啊!
写这道题没什么别的意义所在,只是为了记录一下回退背包的知识点。
这个题目可以非常容易的转化为在所有除去
显然,我们可以暴力枚举
但是这样的复杂度是
我们发现,如果我们求出了
由于在 0/1 背包中,你的
那么要把
那么这道题实际上就解决了。
(考场上打的
算是这几次周考代码最少的 T6,但感觉是思维难度最高的。
首先你需要想到一个非常重要的转化。即我们可以求出任意两个传送门之间互相到达的最短距离,然后题目就转化为了求传送门之间的最小生成树。
于是,你得到了重要的前
那么如何优化呢?
我们考虑一个构造生成树的过程,回顾一下
对于每次操作,实际上我们都是找到两个还没有联通的传送门中,距离最小的连在一起。
那么考虑将任意一条边拆解为图中最原始的边。
然后对于途中的任意一条边
至于为什么这样是对的,额俺也不会证,俺也不知道。可以理解为,如果没有选择这条边,那么就必然可以将新选的这条边拆解为另外的边,但他们的贡献更少(或者出现了环之类的东西)。
毕竟重点是猜结论,赛时很难证明的。。
-
如果你需要算除开
的一些信息,考虑对动态规划进行回退(例如背包,当然有些无法回退)。 -
如果是
个点,每个点都要用一次,且每个点可以使得另外一个点配合上会产生一个与这两个点信息有关的权值,可以任意配合,考虑生成树。 -
对于生成树上的边,如果是由很多条基本边合在一起的,可以考虑将他们拆解开。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】