计蒜客 30994 - AC Challenge - [状压DP][2018ICPC南京网络预赛E题]
题目链接:https://nanti.jisuanke.com/t/30994



样例输入:
5
5 6 0
4 5 1 1
3 4 1 2
2 3 1 3
1 2 1 4
样例输出:
55
样例输入:
1
-100 0 0
样例输出:
0
题解:
把n道题目做了或者没做作为状态,裸的状压DP。
其中当前的时间 t,就是当前做了的题目数量加上1。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF=1e18; const int maxn=; int n;
struct P{
ll a,b;
int pre;
}p[maxn]; ll dp[<<maxn]; int main()
{
cin>>n;
for(int i=,s;i<=n;i++)
{
scanf("%lld%lld",&p[i].a,&p[i].b); scanf("%d",&s);
p[i].pre=;
for(int j=,o;j<=s;j++)
{
scanf("%d",&o);
p[i].pre=p[i].pre|(<<(o-));
}
}
//for(int i=1;i<=n;i++) printf("%lld %lld %d\n",p[i].a,p[i].b,p[i].pre); for(int sta=;sta<(<<n);sta++) dp[sta]=-INF;
dp[]=; ll ans=;
for(int sta=;sta<(<<n);sta++)
{
if(dp[sta]==-INF) continue; ll t=;
for(int i=;i<=n;i++) if(sta&(<<(i-))) t++; for(int i=;i<=n;i++)
{
if(sta&(<<(i-))) continue; if(p[i].pre== || (p[i].pre&sta)>=p[i].pre)
{
int nxt=sta|(<<(i-));
dp[nxt]=max(dp[nxt],dp[sta]+t*p[i].a+p[i].b);
ans=max(dp[nxt],ans);
}
}
} cout<<ans<<endl;
}
时间复杂度 $O\left( {2^n \cdot n} \right)$,n = 20 时为2e7,1s足够。
计蒜客 30994 - AC Challenge - [状压DP][2018ICPC南京网络预赛E题]的更多相关文章
- 计蒜客 31001 - Magical Girl Haze - [最短路][2018ICPC南京网络预赛L题]
题目链接:https://nanti.jisuanke.com/t/31001 题意: 一带权有向图,有 n 个节点编号1~n,m条有向边,现在一人从节点 1 出发,他有最多 k 次机会施展魔法使得某 ...
- 计蒜客 30999 - Sum - [找规律+线性筛][2018ICPC南京网络预赛J题]
题目链接:https://nanti.jisuanke.com/t/30999 样例输入258 样例输出814 题意: squarefree数是指不含有完全平方数( 1 除外)因子的数, 现在一个数字 ...
- 计蒜客 31436 - 提高水平 - [状压DP]
题目链接:https://nanti.jisuanke.com/t/31436 作为一名车手,为了提高自身的姿势水平,平时的练习是必不可少的.小 J 每天的训练包含 $N$ 个训练项目,他会按照某个顺 ...
- 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& ...
- 计蒜客 30996 - Lpl and Energy-saving Lamps - [线段树][2018ICPC南京网络预赛G题]
题目链接:https://nanti.jisuanke.com/t/30996 During tea-drinking, princess, amongst other things, asked w ...
- 计蒜客 30990 - An Olympian Math Problem - [简单数学题][2018ICPC南京网络预赛A题]
题目链接:https://nanti.jisuanke.com/t/30990 Alice, a student of grade 6, is thinking about an Olympian M ...
- hdu 3247 AC自动+状压dp+bfs处理
Resource Archiver Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 100000/100000 K (Java/Ot ...
- hdu 2825 aC自动机+状压dp
Wireless Password Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- BZOJ1559 [JSOI2009]密码 【AC自动机 + 状压dp】
题目链接 BZOJ1559 题解 考虑到这是一个包含子串的问题,而且子串非常少,我们考虑\(AC\)自动机上的状压\(dp\) 设\(f[i][j][s]\)表示长度为\(i\)的串,匹配到了\(AC ...
随机推荐
- [Bayes] What is Sampling
Ref: http://blog.csdn.net/xianlingmao/article/details/7768833 通常,我们会遇到很多问题无法用分析的方法来求得精确解,例如由于式子特别,真的 ...
- Dubbo -- 系统学习 笔记 -- 配置参考手册
Dubbo -- 系统学习 笔记 -- 目录 配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> ...
- HBase--阿里未来发展
最近家里没网络,在公司加班写哈博客. HBase是一个开源的非关系型分布式数据库(NoSQL),基于谷歌的BigTable建模,是一个高可靠性.高性能.高伸缩的分布式存储系统,使用HBase技术可在廉 ...
- 华为手机nova2s使用第三方字体库
准备好一个字体文件,例如mynew.tff 设置>显示>字体样式>最热,搜索免费,安装一款"兰亭黑体"字体(当然也可以购买) 可以在找到 文件管理>本地&g ...
- zabbix的启动和关闭脚本
1. zabbix客户端的系统服务脚本 1.1 拷贝启动脚本 zabbix的源码提供了系统服务脚本,在/usr/local/src/zabbix-3.2.6/misc/init.d目录下,我的系统是C ...
- [Android] Nexus 7 二代连接 Windows 7
Android 设备的三大 USB 连接模式 MTP:Media Transfer Protocol - 媒体传输协议,Windows 下最常见的连接模式,是微软一种可以管理便携存储设备的协议.MTP ...
- React Native(十)——TextInput一点小结
11.24(后续的道路会更加漫长,一点一点总结上去吧~): 从昨天开始接触Mac,实在让自己有点“奔溃”的赶脚……老大说,“不要紧,多接触接触就好了.” 于是,我就开始了跟Mac死磕到底的准备……就先 ...
- Lua 正确的尾调用(proper tail call)
Lua支持“尾调用消除(tail-call elimination)”.尾调用(tail call):当一个函数调用是另一个函数的最后一个动作时,该调用才算是一条“尾调用”.例如,下面的代码就是一条“ ...
- C语言字节对齐问题详解
引言 考虑下面的结构体定义: typedef struct{ char c1; short s; char c2; int i; }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始 ...
- 【github】添加 ssh 秘钥
1 生成秘钥 打开shell 备注: 123@example.com 为邮箱地址 ssh-keygen -t rsa -C "123@example.com" 此处选Y ,其他都是 ...