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的更多相关文章

  1. 线性代数导论 | Linear Algebra 课程

    搞统计的线性代数和概率论必须精通,最好要能锻炼出直觉,再学机器学习才会事半功倍. 线性代数只推荐Prof. Gilbert Strang的MIT课程,有视频,有教材,有习题,有考试,一套学下来基本就入 ...

  2. Samples topic

    Rendering: http://www.cnblogs.com/miloyip/archive/2010/03/29/1698953.html http://www.scratchapixel.c ...

  3. 面向对象程序设计-C++ Finial exam review NOTES【第十六次上课笔记】

    写在前面: 我记得也不全,如果有记录的更全的同学可以留言,我会添加哒 :) 常量 内敛函数 为什么需要内敛函数 内敛函数适用于什么场合 内敛函数本身,最大优点是,避免了真正函数调用的开销 因为普通函数 ...

  4. (转)ZOJ 3687 The Review Plan I(禁为排列)

    The Review Plan I Time Limit: 5 Seconds      Memory Limit: 65536 KB Michael takes the Discrete Mathe ...

  5. Exam(贪心)

    Exam Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

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

  7. hdu 5240 Exam(贪心)

    Exam Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. The Review Plan I-禁位排列和容斥原理

    The Review Plan I Time Limit: 5000ms Case Time Limit: 5000ms Memory Limit: 65536KB   64-bit integer ...

  9. ZOJ 3687 The Review Plan I

    The Review Plan I Time Limit: 5000ms Memory Limit: 65536KB This problem will be judged on ZJU. Origi ...

随机推荐

  1. 三、在SAP中文本如何换行

    一.在一段文字前面,加上右斜杠符合\ ,这句话就会换行了,如图: 效果如下:

  2. Dubbo与Zookeeper 简介

    转自http://blog.csdn.net/congcong68/article/details/41113239 首先说一下Dubbo解决什么问题: (1)当服务越来越多时,服务Url配置管理变得 ...

  3. HDU_2871 线段树+vecor的中间插入和删除使用

    本来这个题目就是个合并区间的题,就跟Hotel一样,要插入一段,则找左孩子 合并后的中间区间 右孩子,但是比较恶心的是,他需要实时得到某一段的起终点,或者某个点在第几个段里面,我想过在线段树里面加入几 ...

  4. Relu激活函数的优点

    Relu优点: 1.可以使网络训练更快. 相比于sigmoid.tanh,导数更加好求,反向传播就是不断的更新参数的过程,因为其导数不复杂形式简单. 2.增加网络的非线性. 本身为非线性函数,加入到神 ...

  5. 常用模块-正则re

    常用模块之正则模块 """ 正则表达式与re模块的关系 1.正则表达式是一门独立的技术,任何语言均可使用 2.python中要想使用正则表达式需要通过re模块 " ...

  6. 2020/1/31 PHP代码审计之目录穿越漏洞

    0x00 目录穿越 目录穿越(Directory Traversal)攻击是黑客能够在Web应用程序所在的根目录以外的文件夹上,任意的存取被限制的文件夹,执行命令或查找数据.目录穿越攻击,也与人称为P ...

  7. 2)将普通工程变成动态库dll

    1)打开那个工程: 2)然后 看属性里面的控制平台:

  8. 关于PHP索引数组unset某key后json_encode相关问题踩坑记录

    <?php $a = [1,2,3]; var_dump(json_encode($a)); #string(7) "[1,2,3]" unset($a[0]); var_d ...

  9. java8+tomcate8仅支持TLSv1.2

    1.编辑$tomcat_home/conf/server.xml <Connector protocol="org.apache.coyote.http11.Http11NioProt ...

  10. h5-过度

    1.过度的基本介绍及写法 .div{ width: 200px; height: 200px; background-color: red; position: absolute; left: 100 ...