P5603 小C与桌游

这道题目涉及DAG的拓扑排序,要求求解最优和最劣情况下的拓扑序列变化次数。最优情况可以采用贪心策略,每次都选取入度为0的点中编号最小的进行访问。最劣情况的贪心策略无效,需要使用动态规划解决。动态规划中,状态表示访问到的最大点的最小代价,并通过预处理找到每个点的最大前置点。转移方程考虑了当前已访问的最大值不小于前置点标号的情况。此外,文章讨论了如何通过贪心策略优化动态规划,避免了大的点被小的点掩盖的问题,最后提供了贪心、树状数组优化的DP和set单调优化的DP三种解法的代码。
摘要由CSDN通过智能技术生成

https://www.luogu.com.cn/problem/P5603icon-default.png?t=M85Bhttps://www.luogu.com.cn/problem/P5603

首先,这道题显然和拓扑排序有关

知道了这一点,问题其实就解决了大半。

其次,读题后发现,题目要求求出 “最优情况” 和 “最劣情况” 两个答案

我们不妨在求解时将这两个问题分开。

对于“最优情况”,我们显然可以贪心的取编号最小的入度为00的点扩展。实现方式就是把拓扑排序的queuequeue换成priori

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值