GYM 101908F - Music Festival


做法:将节目按照右端点排序,\(dp[i][st][0/1]\)表示前i个节目,选择的stage的状态用一个n位二进制数表示为st,第i个节目选或不选的最大值,转移时用线段树优化一下。

#include <bits/stdc++.h>
#define pb push_back
typedef long long ll;
const int N = 20005;
const int inf = 0x3f3f3f3f3f;
using namespace std;
int n, m;
struct node { int l,r,o,id; } a[N];
int cnt = 0;
bool cmp(node a, node b) {if(a.r != b.r) return a.r < b.r;if(a.l != b.l) return a.l < b.l;if(a.o != b.o) return a.o < b.o;return a.id < b.id;
}
int dp[1002][1124][2];
int tree[11][1003<<2];
void add(int k, int p, int l, int r, int x, int v) {if(l == r) {tree[k][p] = v; return;}int mid = (l + r) >> 1;if(x <= mid) add(k,p<<1,l,mid,x,v);else add(k,p<<1|1,mid+1,r,x,v);tree[k][p] = min(tree[k][p<<1], tree[k][p<<1|1]);
}
int P(int k, int p, int l, int r, int x) {if(l == r) return l;int mid = (l + r) >> 1;if(tree[k][p<<1|1] <= x) return P(k,p<<1|1,mid+1,r,x);else if(tree[k][p<<1] <= x) return P(k,p<<1,l,mid,x);else return 0;
}
int main() {scanf("%d",&n);for(int i = 1; i <= n; ++i) {scanf("%d",&m);for(int j = 1; j <= m; ++j) {++cnt; a[cnt].id = i;scanf("%d %d %d",&a[cnt].l,&a[cnt].r,&a[cnt].o);}}sort(a+1, a+1+cnt, cmp);memset(tree,inf,sizeof(tree));memset(dp,-1,sizeof(dp));dp[0][0][0] = 0;for(int i = 1; i <= cnt; ++i) {for(int st = 0; st < (1<<n); ++st) {if(dp[i-1][st][0] != -1) dp[i][st][0] = dp[i-1][st][0];if(dp[i-1][st][1] != -1) dp[i][st][0] = max(dp[i][st][0],dp[i-1][st][1]);if( !(st&(1<<(a[i].id-1))) ) continue;for(int k = 1; k <= n; ++k) if( st&(1<<(k-1)) ) {int pk = P(k,1,1,cnt,a[i].l);int tmp = max(dp[pk][st][1], dp[pk][st^(1<<(a[i].id-1))][1]);tmp = max(tmp, dp[pk][st][0]);tmp = max(tmp, dp[pk][st^(1<<(a[i].id-1))][0]);if(tmp != -1) dp[i][st][1] = max(dp[i][st][1], tmp+a[i].o);}}add(a[i].id, 1, 1, cnt, i, a[i].r);}printf("%d\n",max(dp[cnt][(1<<n)-1][0],dp[cnt][(1<<n)-1][1]));return 0;
}

转载于:https://www.cnblogs.com/RRRR-wys/p/9733508.html

GYM 101908F - Music Festival相关推荐

  1. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例

    强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...

  2. Gym - 102082G

    Gym - 102082G https://vjudge.net/problem/2198225/origin 对于数列中任意一个数,要么从最左边到它不递减,要么从最右边到到它不递减,为了满足这个条件 ...

  3. 安装gym库_强化学习Gym库学习实践(一)

    最近看了一篇研究方向相关的文章,介绍了一种DQN的应用,感觉还挺新鲜的.想着把这篇文章复现出来,就开始学习强化学习的相关知识,作为一名小白,这一路走的可是真的十分艰难(我太菜了啊!) 看了莫烦Pyth ...

  4. 强化学习环境库 Gym 发布首个社区发布版,全面兼容 Python 3.9

    作者:肖智清 来源:AI科技大本营 强化学习环境库Gym于2021年8月中旬迎来了首个社区志愿者维护的发布版Gym 0.19.该版本全面兼容Python 3.9,增加了多个新特性. 强化学习环境库的事 ...

  5. Gym迎来首个完整环境文档,强化学习入门更加简单!

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 编辑:OpenDeepRL OpenAI Gym是 ...

  6. Codeforces Gym 100513G G. FacePalm Accounting 暴力

    G. FacePalm Accounting Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100513 ...

  7. Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/77144590 和其它的机器学习方向一样,强化学习(Reinforcement Learni ...

  8. OpenAI Gym介绍

    上篇博客介绍了OpenAI Gym.OpenAI Gym与强化学习以及OpenAI Gym的安装,接下来运行一个demo体验一下OpenAI Gym这个平台,以CartPole(倒立摆)为例,在工作目 ...

  9. 独家 | 使用Python的OpenAI Gym对Deep Q-Learning的实操介绍(附学习资源)

    作者:ANKIT CHOUDHARY 翻译:张睿毅 校对:吴金笛 本文4300字,建议阅读10+分钟. 本文作者通过实战介绍了Deep Q-Learning的概念. 导言 我一直对游戏着迷.在紧凑的时 ...

最新文章

  1. SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)...
  2. 冬奥冠军武大靖也有减重烦恼,还为此发了篇论文
  3. VMware的快照和克隆总结
  4. hrbustoj 2283 heap解题报告
  5. Golang 入门系列(十) mysql数据库的使用
  6. android控制滚动条滚动
  7. 区块链BaaS云服务(17)纸贵科技Z-BaaS平台“跨链”
  8. 监测linux一些重要文件md5值脚本
  9. linux shell只读变量、删除变量
  10. 音视频技术开发周刊 | 228
  11. Ubuntu下使用pjsip点对点通话
  12. P2408- 不同子串个数【SA】
  13. SQL Tree解法
  14. 具备什么样的能力,才能在人工智能企业中获得一席之地
  15. 用vue开发顶端粘滞效果的页面
  16. matlab刘卫国课后答案第三版,MATLAB程序设计与应用(刘卫国编)课后实验答案
  17. Linux串口驱动分析初始化
  18. cron表达式案例+cron在线生成器
  19. 苹果手机怎么打印wps文档_怎么用苹果手机打印文件?
  20. 了解 Web 服务规范,第 5 部分: WS-Policy

热门文章

  1. 缩减oracle日志,[20180829]减少日志生成量.txt
  2. 基本系统设备感叹号更新不了_电脑识别不了U盘?别紧张,免费教你如何解决...
  3. 后端学习 - JavaWeb
  4. 高等数学下-赵立军-北京大学出版社-题解-练习8.3
  5. [Java基础]List集合子类特点
  6. [蓝桥杯2015初赛]手链样式-思维+next_permutation枚举(好题)
  7. AcWing 703. 数独检查
  8. 创建型模式——工厂模式
  9. Find them, Catch them POJ - 1703(种类并查集)
  10. asp后台调用产品数据_后台产品经理,需掌握这些数据交互知识