https://nanti.jisuanke.com/t/30994

把每道题的前置条件用二进制压缩,然后dp枚举所有可能状态,再枚举该状态是从哪一个节点转移来的,符合前置条件则更新。

代码:

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1 << 20;
ll dp[maxn], a[21], b[21];
int pre[21];
int calc(int s) {int res = 0;for (int i = 0; i < 20; i++) {if ((1 << i) & s) {res++;}}return res;
}
int main() {int n;memset(dp, -0x3f, sizeof dp);scanf("%d", &n);for (int i = 1, t, x; i <= n; i++) {scanf("%lld%lld%d", &a[i], &b[i], &t);while (t--) {scanf("%d", &x);pre[i] += (1 << (x - 1));}}ll ans = 0;dp[0] = 0;for (int i = 1; i < (1 << n); i++) {for (int j = 0; j < n; j++) {if (i & (1 << j)) {int t = i - (1 << j);if ((t & pre[j + 1]) == pre[j + 1]) {dp[i] = max(dp[i], dp[t] + calc(i) * a[j + 1] + b[j + 1]);ans = max(ans, dp[i]);}}}}printf("%lld\n", ans);
}

转载于:https://www.cnblogs.com/stolf/p/9572209.html

【状压dp】AC Challenge相关推荐

  1. 郊区春游(状压dp)

    链接:https://ac.nowcoder.com/acm/contest/134/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  2. ACM-ICPC 2018 南京赛区网络预赛 J AC Challenge (状压dp)

    题意 给你n道题,在你做第ii{i}道题的时候有p[j]p[j]{p[j]}个前置条件,当这些前置条件都满足的时候,我们可以得到a[j]∗t+b[j]a[j]∗t+b[j]a[j] * t + b[j ...

  3. ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge 状压DP

    题目链接: https://nanti.jisuanke.com/t/30994 Dlsj is competing in a contest with n (0 < n \le 20)n(0& ...

  4. ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge(状压dp)

    Dlsj is competing in a contest with n (0 < n \le 20)n(0<n≤20) problems. And he knows the answe ...

  5. ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge(状压dp)

    题目链接:https://nanti.jisuanke.com/t/30994 样例输入1 5 5 6 0 4 5 1 1 3 4 1 2 2 3 1 3 1 2 1 4 样例输出1 55 样例输入2 ...

  6. ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge 状压dp

    Dlsj is competing in a contest with n(0<n≤20)n (0 < n \le 20)n(0<n≤20) problems. And he kno ...

  7. 【ACM-ICPC 2018 南京赛区网络预赛】E AC Challenge【状压DP】

    题目链接 状压DP DP[S]表示S中所有的问题都解决的可以获得的最大权值 代码 #include <map> #include <set> #include <queu ...

  8. HDU - 2825 Wireless Password(AC自动机+状压dp)

    题目链接:点击查看 题目大意:给出 m 个匹配串,问长度为 n 的字符串中,至少包含 k 个匹配串(可重叠)的字符串有多少个 题目分析:考虑到n,m,k都特别小,所以可以先用AC自动机将状态关系转移出 ...

  9. BZOJ 4042 Luogu P4757 [CERC2014]Parades (树形DP、状压DP)

    题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=4042 (Luogu) https://www.luogu.org/prob ...

  10. CH0103最短Hamilton路径 poj2288 Islands and Brigdes【状压DP】

    虐狗宝典学习笔记: 取出整数\(n\)在二进制表示下的第\(k\)位                                                    \((n >> ...

最新文章

  1. 利刃 MVVMLight 8:DispatchHelper在多线程和调度中的使用
  2. boost::hana::make_type用法的测试程序
  3. boost::format模块一些真实的、简单的测试
  4. KVM虚拟机相关步骤
  5. Java 时间处理(格式解释、格式化时间、获取当前时间、获取年份、月份等、时间戳转换成时间)
  6. 怎么判断我选了多少个复选框_7~8个月宝宝一天吃多少辅食,怎么安排?妈妈这样做,养出健康娃...
  7. android ota不打包_android 6.0系统 make otapackage 错误
  8. java中数据类型及运算符的注意事项
  9. 服务器搭建nginx集群
  10. FastDFS存储目录迁移方案
  11. Python爬虫实战三之计算大学本学期绩点
  12. 苹果手机通过iCloud导出通讯录导入到安卓手机 教程
  13. 简单 黑苹果dsdt教程_提取DSDT和SSDT教程
  14. CS5213芯片|HDMI to VGA转换头芯片
  15. 银河麒麟 Kylin_s10_sp3安装Oracle11g(FS)(亲测有效)
  16. V_rep与vs2019开发环境配置
  17. MTK平台如何决定SensorMode
  18. Linux系统 D2L 安装
  19. mysql 常用sql调优_MySQL 常用SQL优化
  20. 【万兴PDF专家】OCR引擎的离线安装方法,让你不受网速的折磨,PDF给OCR成可搜索的高级PDF,牛逼了我的万兴

热门文章

  1. Scrapy爬取知乎用户信息
  2. pandas根据索引删除dataframe列
  3. mysql5.5 5.7区别_mysql 5.5 和5.7 安装的区别
  4. Git检出指定的目录-稀疏检出
  5. MYSQL 字符集问题
  6. Soul 网关源码阅读(四)Dubbo请求概览
  7. 崩坏3支持鸿蒙系统没,崩坏3鸿蒙版
  8. php 读取文件的所有图片格式,扣丁学堂PHP培训简述PHP如何读取文件夹下所有图片、文件-php文件...
  9. Python的第三方库requests
  10. MySQL中的locate函数