Review For Exam
Review For Exam
[2019 福建省赛]
一个很简单的状态压缩DP,结果集体走偏
如何解决连续几日的限制问题?这种东西普通的DP很难写
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn = 1010;
ll dp[maxn][1050];
ll val[maxn];
bool vis[1050];
const ll inf =0x3f3f3f3f3f3f3f3f;
int main() {
int n,k,a,b;
scanf("%d%d%d%d",&n,&k,&a,&b);
for(int i=1;i<=n;++i) scanf("%lld",&val[i]);
int mx=(1<<k)-1;
memset(dp,-0x3f3f3f3f,sizeof(dp));
for(int j=0,tmp;j<=mx;++j){
tmp=0;
for(int i=0;i<k;++i){
if((j>>i)&1){
tmp++;
}
}
if(tmp<=b&&tmp>=a) {
vis[j]=1;
dp[1][j]=0;
for(int i=0;i<k;++i){
if((j>>i)&1){
dp[1][j]+=val[k-i];
}else{
dp[1][j]-=val[k-i];
}
}
}
}
int tmp,tmpp,op;
for(int i=2;i<=n-k+1;++i){
for(int j=0;j<=mx;++j){
if(vis[j]){
tmp=j>>1;
tmpp=tmp+(1<<(k-1));
op=j%2;
if(op){
if(vis[tmp])
dp[i][j]=max(dp[i-1][tmp]+val[i+k-1],dp[i][j]);
if(vis[tmpp])
dp[i][j]=max(dp[i-1][tmpp]+val[i+k-1],dp[i][j]);
}else{
if(vis[tmp])
dp[i][j]=max(dp[i-1][tmp]-val[i+k-1],dp[i][j]);
if(vis[tmpp])
dp[i][j]=max(dp[i-1][tmpp]-val[i+k-1],dp[i][j]);
}
}
}
}
ll ans=-inf;
for(int j=0;j<=mx;++j){
ans=max(dp[n-k+1][j],ans);
}
printf("%lld\n",ans);
return 0;
}
Review For Exam的更多相关文章
- 线性代数导论 | Linear Algebra 课程
搞统计的线性代数和概率论必须精通,最好要能锻炼出直觉,再学机器学习才会事半功倍. 线性代数只推荐Prof. Gilbert Strang的MIT课程,有视频,有教材,有习题,有考试,一套学下来基本就入 ...
- Samples topic
Rendering: http://www.cnblogs.com/miloyip/archive/2010/03/29/1698953.html http://www.scratchapixel.c ...
- 面向对象程序设计-C++ Finial exam review NOTES【第十六次上课笔记】
写在前面: 我记得也不全,如果有记录的更全的同学可以留言,我会添加哒 :) 常量 内敛函数 为什么需要内敛函数 内敛函数适用于什么场合 内敛函数本身,最大优点是,避免了真正函数调用的开销 因为普通函数 ...
- (转)ZOJ 3687 The Review Plan I(禁为排列)
The Review Plan I Time Limit: 5 Seconds Memory Limit: 65536 KB Michael takes the Discrete Mathe ...
- Exam(贪心)
Exam Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 【Java】-NO.20.Exam.1.Java.1.001- 【1z0-807】- OCEA
1.0.0 Summary Tittle:[Java]-NO.20.Exam.1.Java.1.001-[1z0-807] Style:EBook Series:Java Since:2017-10- ...
- hdu 5240 Exam(贪心)
Exam Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- The Review Plan I-禁位排列和容斥原理
The Review Plan I Time Limit: 5000ms Case Time Limit: 5000ms Memory Limit: 65536KB 64-bit integer ...
- ZOJ 3687 The Review Plan I
The Review Plan I Time Limit: 5000ms Memory Limit: 65536KB This problem will be judged on ZJU. Origi ...
随机推荐
- 三、在SAP中文本如何换行
一.在一段文字前面,加上右斜杠符合\ ,这句话就会换行了,如图: 效果如下:
- statement 、prepareStatement的用法和解释
转自:http://blog.csdn.net/QH_JAVA/article/details/48245945 一.prepareStatement 的用法和解释 1.PreparedState ...
- 支持 UTF-8 中文的串口调试工具
最近使用 mdk526,编辑设置使用 utf-8,编辑窗口中文正常,但是编译的时候提示 warning: #870-D: invalid multibyte character sequence,解决 ...
- spring boot redis 缓存(cache)集成
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- Day 1:线程与进程系列问题(一)
一.进程与线程 进程:正在执行的程序称为一个线程,主要负责内存空间的划分. 线程:线程在一个进程中负责代码的执行,就是进程中的一个执行路径. 多线程:在一个进程中有多个线程同时在执行不同的任务(同时指 ...
- HashMap核心功能源码浅析
1.引子 "HashMap"由“hash”和“map"两个单词组成,这里的”map"表示“映射”而不是“地图”的意思,两个单词连起来就是“哈希映射表”.Map是 ...
- DOM,windows 对象
DOM:文档对象模型 --树模型文档:标签文档,对象:文档中每个元素对象,模型:抽象化的东西 windows 对象:浏览器窗口信息document对象:浏览器显示的页面文件 一:window: win ...
- Java8集合框架——集合工具类Arrays内部方法浅析
java.util.Arrays 备注:本文只对 Java8 中的 java.util.Arrays 中提供的基本功能进行大致介绍,并没有对其具体的实现原理进行深入的探讨和分析.详情可自己深入观摩源码 ...
- eclipse JSP学习遇到的问题,获取页面中文值时出现乱码
性别:男<input type="radio" name="sex" value="男" /> String sex =requ ...
- Python pip安装时You are using pip version 9.0.1, however version 18.0 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
在我们安装第三方库的时候会在结尾出现如下两行内容 You are using pip version 9.0.1, however version 18.0 is available. You sho ...