2023-02-18

题目

题目传送门

翻译

翻译

难度&重要性(1~10):5

题目来源

AtCoder

题目算法

状压dp

解题思路

我们令 \(S\) 表示当前箱子状态,\(P_i\) 表示第 \(i\) 把钥匙能开的箱子。

设 \(f_S\) 表示开启当前状态箱子的最小花费。

能得到转移方程:

\(f_{P_i|i}=\min(f_{P_i|i},f_i+a_i)\)

时间复杂度 \(O(2^nnm)\),实际可以优化到 \(O(2^nm)\)。

完成状态

已完成

[ABC142E] Get Everything的更多相关文章

  1. 20220729 - DP训练 #2

    20220729 - DP训练 #2 时间记录 \(8:00-8:10\) 浏览题面 \(8:10-8:50\) T1 看题想到了建树,从每一个点遍历,若能遍历每一个点,则可以获胜 快速写完之后,发现 ...

随机推荐

  1. Django context must be a dict rather than UserProfile.

    context must be a dict rather than UserProfile. # 主页@login_requireddef index(request): data={} data ...

  2. ACM,我“退役”了

    ACM,我"退役"了 凡是过往 皆为序章. 就在昨天,我把我所有的装备都拿回了宿舍,实验室中我的工位变得干干净净.走出实验室时,我和老唐都有些难受,毕竟,我们这样就"退役 ...

  3. Java网络编程----通过实现简易聊天工具来聊聊NIO

    前文我们说过了BIO,今天我们聊聊NIO.NIO 是什么?NIO官方解释它为New lO,由于其特性我们也称之为,Non-Blocking IO.这是jdk1.4之后新增的一套IO标准.为什么要用NI ...

  4. There is not enough memory to perform the requested operation

    今日在写bug 时 ide 突发脑溢血,崩溃了 一.修改用户目录下的 .vmoptions 找到C:\用户\用户名.WebStorm2018.1\config\webstorm64.exe.vmopt ...

  5. 代码随想录算法训练营Day12 栈与队列

    代码随想录算法训练营 代码随想录算法训练营Day12 栈与队列| 239. 滑动窗口最大值  347.前 K 个高频元素  总结 239. 滑动窗口最大值 给定一个数组 nums,有一个大小为 k 的 ...

  6. Go语言如何判断两个对象是否相等

    1. 引言 在编程中,判断两个对象是否相等是一项常见的任务,同时判断对象是否相等在很多情况下都非常重要,例如: 单元测试:编写单元测试时,经常需要验证函数的输出是否符合预期,这涉及到比较对象是否相等. ...

  7. Linux网络编程(学习笔记)

    文中python代码来自老师的教学代码,感谢我的老师~~ 1. linux网络数据处理过程: 网卡->协议栈->网络 1)应用层输出数据 socket层->协议层->接口层 2 ...

  8. 前端vue地图定位并测算当前定位离目标位置距离可用于签到打卡

    前端vue地图定位并测算当前定位离目标位置距离可用于签到打卡, 下载完整代码请访问uni-app插件市场地址: https://ext.dcloud.net.cn/plugin?id=12974 效果 ...

  9. Rainbond助力“信创应用”迁移上云

    Rainbond v5.14.2 版本,又称信创版本.从这个版本开始,开源用户也可以利用 Rainbond 管理符合信创要求的硬件计算资源.在这个版本中,产品团队将此前只在企业版产品中存在的信创相关功 ...

  10. 2023-07-11:给定正整数 n, 返回在 [1, n] 范围内具有 至少 1 位 重复数字的正整数的个数。 输入:n = 100。 输出:10。

    2023-07-11:给定正整数 n, 返回在 [1, n] 范围内具有 至少 1 位 重复数字的正整数的个数. 输入:n = 100. 输出:10. 答案2023-07-11: 函数的主要思路如下: ...