题解

题目大意 给你n个问题 要求每分钟解决一个问题 且不能中断 如果中断当前得分为最终得分 每个问题的得分为 解决时间*a[i] + b[i] 有的问题需要先完成某些问题才能做

使用状压DP 用二进制压缩为2^20个状态 从小到达暴力枚举每个状态 每个状态检测是否合法 是否满足转移条件 过程每次取最大

AC代码

#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;const int INF = 0x3f3f3f3f;
const int MAXN = 21;
int a[MAXN], b[MAXN], s[MAXN], n;
ll d[1 << MAXN]; //解决问题状态为i的情况下最高得分int btcnt(int x)
{int cnt = 0;while (x){if (x & 1)cnt++;x >>= 1;}return cnt;
}
int main()
{
#ifdef LOCALfreopen("C:/input.txt", "r", stdin);
#endifcin >> n;for (int i = 0; i < n; ++i) //将节点改为0~n-1 减少状态范围{int t;scanf("%d%d%d", &a[i], &b[i], &t);for (int j = 0; j < t; ++j){int p;scanf("%d", &p);s[i] |= 1 << p - 1;}}memset(d, -1, sizeof(d));d[0] = 0; //一项都没有为0ll ans = 0, mx = (1 << n) - 1; //mx状态最大值for (int i = 1; i <= mx; ++i) //枚举全部状态{for (int j = 0; j < n; ++j) //当前项if ((i & 1 << j) && ~d[i & ~(1 << j)] && (i & s[j]) == s[j]) //包含当前项 不包含当前项的状态已经处理 包含当前项所有前置{d[i] = max(d[i], d[i & ~(1 << j)] + btcnt(i) * a[j] + b[j]);ans = max(ans, d[i]);}}cout << ans << endl;return 0;
}

ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge相关推荐

  1. 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 ...

  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

    题目链接:https://nanti.jisuanke.com/t/30994 题意:有n道题,做第i道题首先得做Si道题(p1​,p2​,...,psi​​),做一道题需要一分钟,在t时刻完成第i道 ...

  4. 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& ...

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

    题意: 给定n个作业,每个作业有两个值a,b, 第i天完成这个作业会得到value :i*a + b: 但是完成这个任务之前需要完成一些别的任务 思路: 乍一看像是搜索,但是似乎不太行(好像可以写过) ...

  6. 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 ...

  7. 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 ...

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

    题意: 一个人做n道题目,每道题会收获ai*t+bi的分数,同时要休息一个单位的时间t.此外,还限制做题目i之前,要先完成si道题目{pi1,pi2,···,pisi}求最多获得多少分数. 思路: n ...

  9. ACM-ICPC 2018 南京赛区网络预赛

    轻轻松松也能拿到区域赛名额,CCPC真的好难 An Olympian Math Problem 问答 只看题面 54.76% 1000ms 65536K Alice, a student of gra ...

最新文章

  1. 苹果应用上架审核规则介绍
  2. JAVA NIO存在的问题
  3. VMware运行时“内部错误”的解决方法
  4. DAI、DHCP SNOOPING、ip source guard、IPSG
  5. 由C过渡到C++-入门知识点
  6. 操作系统:166个Linux实用命令,太全了!
  7. VS2012找不到EF框架实体模型的解决方法
  8. win2003下如何自动备份MySQL数据库
  9. Kubernetes支持有状态服务的部署
  10. [Ext]2.0探索(七)Grid使用介绍
  11. 小型制造类企业IT云平台
  12. 一文了解人工智能——学科介绍、发展史、三大学派
  13. 高琪300集——入门
  14. 火箭联盟修改车重教程,国服Wegame平台和外服Steam平台通用方法
  15. PS按照图片大小调整画布大小
  16. 如何对电脑里越来越多的文件进行管理,分类最重要
  17. java实训答辩ppt_实训项目答辩.ppt
  18. opencv 二维图像 特征检测 特征描述 特征匹配 平面物体识别跟踪
  19. 如何减轻手机的电磁辐射?
  20. 【Excel】+自动生成图表

热门文章

  1. LCD显示屏-基础篇(屏的角度)
  2. 面经手册 · 第2篇《数据结构,HashCode为什么使用31作为乘数?》
  3. 享学课堂Java开发之Mybatis训练营
  4. Mariadb数据备份恢复xtrabackup使用
  5. Git 中忽略某些文件或者文件夹
  6. 微信小程序 简单易用 下拉框组件
  7. 吴恩达出任Woebot董事长,再度出手医疗领域帮人们治疗抑郁症
  8. 工业机器人和无人机得到大量使用,人工智能开始降本增效
  9. 有些框架自动重写html标签,充分利用HTML标签元素 – 简单的xtyle前端框架
  10. 前端禁用中文半角输入法