这道题就是道状压dp...比赛的时候太贪心 然后状压又不好 所以T2 T3一起挂了QAQ 吸取教训QAQ

f[i][j][k]表示前i个数选了j个 最后a个的状态为k的答案

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
using std::swap;
const int M=;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
int n,m,a,b,k,ly;
int v[M],sz[M];
int f[][][],y,w[],val[],ans;
int max(int a,int b){return a>b?a:b;}
void maxs(int&a,int b){if(a<b) a=b;}
int main(){
n=read(); m=read(); a=read(); b=read();
for(int i=;i<=n;i++) v[i]=read();
for(int i=;i<=b;i++){
k=read(); y=read();
int s=;
for(int j=;j<=k;j++) ly=read(),s|=(<<(a-ly));
w[s]+=y;
}
int now=,last=,tot=<<a;
for(int i=;i<tot;i++) for(int x=i;x;x=(x-)&i) val[i]+=w[x];
memset(f[now],-0x3f,sizeof(f[now]));
for(int s=;s<tot;s++){
int x=val[s];
int sz=;
for(int i=;i<a;i++)if((s>>i)&) sz++,x+=v[a-i];
f[now][sz][s]=x;
}
for(int i=a+;i<=n;i++){
swap(now,last);
memset(f[now],-0x3f,sizeof(f[now]));
for(int j=;j<=m;j++)
for(int s=;s<tot;s++)
maxs(f[now][j+(s&)][s],max(f[last][j][s>>],f[last][j][s>>|<<(a-)])+val[s]+(s&)*v[i]);
}
for(int s=;s<(<<a);s++) for(int j=;j<=m;j++) maxs(ans,f[now][j][s]);
printf("%d\n",ans);
return ;
}

洛谷金秋夏令营模拟赛 第2场 T11737 时之终末的更多相关文章

  1. 洛谷金秋夏令营模拟赛 第2场 T11738 伪神

    调了一个下午只有八十分QAQ md弃了不管了 对拍也没拍出来 鬼知道是什么数据把我卡了QAQ 没事我只是个SB而已 这题其实还是蛮正常的 做法其实很简单 根据链剖的构造方法 你每次修改都是一段又一段的 ...

  2. 洛谷 P5046 [Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块+卡常)

    洛谷题面传送门 zszz,lxl 出的 DS 都是卡常题( 首先由于此题强制在线,因此考虑分块,我们那么待查询区间 \([l,r]\) 可以很自然地被分为三个部分: 左散块 中间的整块 右散块 那么这 ...

  3. 洛谷CON1041 NOIP模拟赛一试

    A T2-power of 2 题目描述 是一个十分特殊的式子. 例如: n=0时 =2 然而,太大了 所以,我们让对10007 取模 输入输出格式 输入格式: n 输出格式:  % 10007 输入 ...

  4. [洛谷P5048][Ynoi2019模拟赛]Yuno loves sqrt technology III

    题目大意:有$n(n\leqslant5\times10^5)$个数,$m(m\leqslant5\times10^5)$个询问,每个询问问区间$[l,r]$中众数的出现次数 题解:分块,设块大小为$ ...

  5. 【洛谷】xht模拟赛 题解

    前言 大家期待已久并没有的题解终于来啦~ 这次的T1和HAOI2016撞题了...深表歉意...表示自己真的不知情... 天下的水题总是水得相似,神题各有各的神法.--<安娜·卡列妮娜> ...

  6. 洛谷P5048 [Ynoi2019模拟赛]Yuno loves sqrt technology III(分块)

    传送门 众所周知lxl是个毒瘤,Ynoi道道都是神仙题 用蒲公英那个分块的方法做结果两天没卡过去→_→ 首先我们分块,预处理块与块之间的答案,然后每次询问的时候拆成整块和两边剩下的元素 整块的答案很简 ...

  7. [洛谷0925]NOIP模拟赛 个人公开赛 OI

     P3395 路障 题目背景 此题约为NOIP提高组Day1T1难度. 题目描述 B君站在一个n*n的棋盘上.最开始,B君站在(1,1)这个点,他要走到(n,n)这个点. B君每秒可以向上下左右的某个 ...

  8. 洛谷 P5048 - [Ynoi2019 模拟赛] Yuno loves sqrt technology III(分块)

    题面传送门 qwq 感觉跟很多年前做过的一道题思路差不多罢,结果我竟然没想起那道题?!!所以说我 wtcl/wq 首先将 \(a_i\) 离散化. 如果允许离线那显然一遍莫队就能解决,复杂度 \(n\ ...

  9. NOI.AC NOIP模拟赛 第五场 游记

    NOI.AC NOIP模拟赛 第五场 游记 count 题目大意: 长度为\(n+1(n\le10^5)\)的序列\(A\),其中的每个数都是不大于\(n\)的正整数,且\(n\)以内每个正整数至少出 ...

随机推荐

  1. BluetoothDevice详解

    一. BluetoothDevice简介 1. 继承关系 public static Class BluetoothDevice extends Object implement Parcelable ...

  2. 3ds Max学习日记(六)

      到了周六就不想再忙实验室的活了,于是玩了一下3ds max,第5和第6章每章都只有4个视频,于是就一起弄完了,什么网格建模,曲面建模啥的,nurbs啥的. 附上今日的劳动成果:   叉子(用长方体 ...

  3. [OS] 信号量(Semaphore)

    一个信号量S是一个整型量,除对其初始化外,它只能由两个原子操作P和V来访问.P和V的名称来源于荷兰文proberen(测试)和verhogen(增量),后面亦将P/V操作分别称作wait(), sig ...

  4. BZOJ 2208 连通数(强连通分量)

    先缩点,对于缩完点后的DAG,可以直接在每个scc dfs一次就可以求出终点是这个scc的点的点对个数. # include <cstdio> # include <cstring& ...

  5. prototype的本质

    在<关于思维方式的思绪>那篇文章里提到了, 原型的本质就是一种委托关系. 即我这里没有,就到我的原型里去看看,一旦找到就当成我的用. 本文详细说一下这个事情. 比如某女买东西,钱都是她老公 ...

  6. Python对文件和文件夹的高级操作模块shutil

    shutil模块提供了许多关于文件和文件夹的高级操作. 特别提供了支持文件复制和删除的功能. # 将文件对象fsrc的内容复制到文件类对象fdst.length(可选参数)是缓冲区大小 shutil. ...

  7. Android 数据库存储之db4o

    在Android中,使用数据库除了可以使用Android内嵌的SQLite,还可以使用db4odb4o是嵌入式的面向对象的数据库,是基于对象的数据库,操作的数据本身就是对象.特点:对象以其本身的方式来 ...

  8. BZOJ2242 [SDOI2011]计算器 【BSGS】

    2242: [SDOI2011]计算器 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 4741  Solved: 1796 [Submit][Sta ...

  9. NOIP2016Day2T3愤怒的小鸟(状压dp) O(2^n*n^2)再优化

    看这范围都知道是状压吧... 题目大意就不说了嘿嘿嘿 网上流传的写法复杂度大都是O(2^n*n^2),这个复杂度虽然官方数据可以过,但是在洛谷上会TLE[百度搜出来前几个博客的代码交上去都TLE了], ...

  10. bzoj1854: [Scoi2010]游戏(匈牙利) / GDKOI Day2 T2(最大流)

    题目大意:有n(<=1000000)个装备,每个装备有两个属性值(<=10000),每个装备只能用一次,使用某一个值,攻击boss必须先使用属性为1的,再使用属性为2的,再使用属性为3的, ...