计蒜客 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 ...
随机推荐
- 一道简单的把ArrayList中的正负数组分开并求得边界索引的题目
给定一个List,里面存放的一组整数有正数和负数,要求把正数和负数分开,并得到正数和负数分割线索引(不要求排序,不能使用多层循环) 解答方法并不算太复杂,重点注意边界条件和极端条件(全是正或者全是负) ...
- logstash结合rsyslog,收集系统日志
rsyslog是日志收集工具.如今非常多Linux都自带rsyslog,用其替换掉syslog.怎样安装rsyslog就不讲了.大概讲下原理.然后讲logstash的相关配置. rsyslog本身有一 ...
- web页面 验证码 生成
web页面 验证码 生成 kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kapt ...
- pip更换下载源(提升下载速度)
经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,或者下载速度很慢,所以我们最好是将自己使用的pip源更换一下,这样就能解决被 ...
- Linux od命令(以指定进制显示文件)
从“读取二进制文件”出发,到od命令的使用 在桃村实习期间,一直努力做毕业设计,我的毕业设计中有一个内容就是读取SEGY文件.在读取文件时,经常遇到的问题时你要读取浮点型数据,这时你就必须考虑你所使用 ...
- 【GIS】WGS84与Web墨卡托理解(转)
坐标系 · WGS84,地理坐标系,单位度,在三维上可以很好的展示全球的数据,但在二维上显示时在高纬度地区变形较大,另由于WGS84坐标系与CGCS2000坐标系差异很小,所以WGS84坐标系在Web ...
- wordpress for sae
帮人建个站,准备用sae+wordpess,小研究一下 http://sae.sina.com.cn/?m=apps&a=detail&aid=1 http://wp4sae.org/ ...
- 第7章 Ajax数据爬取
Ajax 简介 Ajax 分析方法 Ajax 结果提取
- 解决“Connection to https://dl-ssl.google.com refused”问题
相信一些人刚开始搞android的安装开发环境的时候会遇到:Failed to fectch URl https://dl-ssl.google.com/android/repository/addo ...
- [Ubuntu] geoip-bin 程序包 - 查询 IP 归属地
简述:在Linux命令行下查询IP归属地. 对Ubuntu/Debian系统,使用APT命令进行安装: $ sudo apt-get install geoip-bin 该包由MaxMind提供,它同 ...