题解:

比较水啦。。dp套dp

f[i][j][k]表示枚举了前i位,最大公共子序列匹配状态为j,noi匹配到了第k位

因为g[j]和g[j+1]最多差1 所以可以状压成j

然后内层再dp一下搞出下一个j

于是他的名字就叫做dp套dp了

代码:

#include <bits/stdc++.h>
using namespace std;
#define rint register int
#define IL inline
#define rep(i,h,t) for (rint i=h;i<=t;i++)
#define dep(i,t,h) for (rint i=t;i>=h;i--)
#define mid ((h+t)>>1)
#define ll long long
const int mo=1e9+;
char s[];
int n,k,f[][][],c[],g[],ans[];
#define js(x,y) x+y>mo?x=x+y-mo:x=x+y
int qu(int x,int y)
{
int f[];
f[]=;
rep(i,,k-)
if ((x>>i)&) f[i+]=f[i]+;
else f[i+]=f[i];
rep(i,,k)
{
g[i]=max(f[i],g[i-]);
g[i]=max(g[i],f[i-]+(c[i]==y));
}
int ans=;
rep(i,,k)
if (g[i]>g[i-])
ans+=<<(i-);
return(ans);
}
int pp(int x)
{
int cnt=;
while (x)
{
if (x&) cnt++;
x/=;
}
return cnt;
}
int main()
{
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>k;
cin>>s;
rep(i,,k)
if (s[i-]=='N') c[i]=; else
if (s[i-]=='O') c[i]=;
else c[i]=;
f[][][]=;
rep(i,,n)
{
rint now=i%,lst=(i+)%;
memset(f[now],,sizeof(f[now]));
rep(i,,((<<k)-))
{
if (f[lst][i][])
{
rep(kk,,)
{
int x1=qu(i,kk),x2=;
if (kk==) x2=;
js(f[now][x1][x2],f[lst][i][]);
}
}
if (f[lst][i][])
{
rep(kk,,)
{
int x1=qu(i,kk),x2=;
if (kk==) x2=;
if (kk==) x2=;
js(f[now][x1][x2],f[lst][i][]);
}
}
if (f[lst][i][])
{
rep(kk,,)
{
int x1=qu(i,kk),x2=;
if (kk==) x2=;
js(f[now][x1][x2],f[lst][i][]);
}
}
}
}
int kk=n%;
rep(i,,(<<k)-)
rep(j,,)
js(ans[pp(i)],f[kk][i][j]);
rep(i,,k)
cout<<ans[i]<<endl;
return ;
}

5336: [TJOI2018]party的更多相关文章

  1. BZOJ 5336: [TJOI2018]party

    状压最长公共子序列的DP数组,一维最多K(15)个数,且相邻两个数的差不超过1,2^15种状态,预处理转移 #include<cstdio> #include<algorithm&g ...

  2. [模板] dp套dp && bzoj5336: [TJOI2018]party

    Description Problem 5336. -- [TJOI2018]party Solution 神奇的dp套dp... 考虑lcs的转移方程: \[ lcs[i][j]=\begin{ca ...

  3. BZOJ5336: [TJOI2018]party

    BZOJ5336: [TJOI2018]party https://lydsy.com/JudgeOnline/problem.php?id=5336 分析: 好题. 正常的思路是设\(f[i][j] ...

  4. bzoj 5338: [TJOI2018]xor (树链剖分+可持久化01Trie)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=5338 题面: 5338: [TJOI2018]xor Time Limit: 30 Sec  ...

  5. 洛谷P4590 [TJOI2018]游园会(状压dp LCS)

    题意 题目链接 Sol 这个题可能是TJOI2018唯一的非模板题了吧.. 考虑LCS的转移方程, \[f[i][j] = max(f[i - 1][j], f[i][j - 1], f[i - 1] ...

  6. 【BZOJ5339】[TJOI2018]教科书般的亵渎(斯特林数)

    [BZOJ5339][TJOI2018]教科书般的亵渎(斯特林数) 题面 BZOJ 洛谷 题解 显然交亵渎的次数是\(m+1\). 那么这题的本质就是让你求\(\sum_{i=1}^n i^{m+1} ...

  7. 【BZOJ5337】[TJOI2018]str(动态规划,哈希)

    [BZOJ5337][TJOI2018]str(动态规划,哈希) 题面 BZOJ 洛谷 题解 就很呆... 显然按层\(dp\),如果能够匹配上就进行转移,直接哈希判断是否能够匹配就好了... #in ...

  8. 【BZOJ5336】[TJOI2018]party(动态规划)

    [BZOJ5336][TJOI2018]party(动态规划) 题面 BZOJ 洛谷 题解 这题好神仙啊... 考虑普通的\(LCS\)的\(dp\),\(f[i][j]=\max\{f[i-1][j ...

  9. 【BZOJ5335】[TJOI2018]智力竞赛(二分图匹配)

    [BZOJ5335][TJOI2018]智力竞赛(二分图匹配) 题面 BZOJ 洛谷 题解 假装图不是一个DAG想了半天,.发现并不会做. 于是假装图是一个DAG. 那么显然就是二分答案,然后求一个最 ...

随机推荐

  1. hibernate框架学习之数据查询(HQL)helloworld

    package cn.itcast.h3.hql; import java.util.List; import org.hibernate.Query; import org.hibernate.Se ...

  2. $Django importlib与dir知识,手写配置文件, 配置查找顺序 drf分页器&drf版本控制

    1  importlib与dir知识 # importlib简介动态导入字符串模块 # 常规导入 from ss.aa import b from ss import a print(b,type(b ...

  3. Centos 7 安装Docker-ce记录

    以前尝试过在centos 6上安装Docker , 需要升级内核,支持aufs,比较麻烦:在使用过程中出现过Docker挂掉的情况,官方建议在64 位 centos 7 上运行,本文将安装步骤记录下来 ...

  4. LabVIEW---vi图标和符号的制作

    前言: 使用图形化设计语言进行开发时候,为VI添加说明的一个重要的方法是为其建立一个形象的图标,每个VI都在前面板后程序框图的右上角有一个图标,它是VI的图形化表示.如果VI当作子VI调用,该图标就会 ...

  5. ASP.NET如何下载大文件

    关于此代码的几点说明: 1. 将数据分成较小的部分,然后将其移动到输出流以供下载,从而获取这些数据. 2. 根据下载的文件类型来指定 Response.ContentType .(参考OSChina的 ...

  6. HDU 5033

    题意: 给你 N 楼房, 然后给你m个人站在这些楼房之间, 问看到天空的仰角是多少度 思路: 对于每一个人, 算出左边的凸包, 和右边的凸包, 找出最大斜率点, 算角度即可 (我在线算比较费时, 离线 ...

  7. 实体类和json互相转换

    /// <summary> /// 将实体类转换为json数据 /// </summary> /// <returns></returns> publi ...

  8. Jquyer table 中的数据分页

    直接上代码,复制出来就可以使用 <!DOCTYPE html> <html> <head lang="en"> <meta charset ...

  9. maven install 报错 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

    1.控制台打印信息 [INFO] Scanning for projects... [INFO] [INFO] ---------------------< org.cqupt.mauger:R ...

  10. Oracle12c 从入门到精通(第二版) 闫红岩 金松河 编著

    声明:本文只是用于学习笔记使用.方便查询.若需要书本,请到书店购买. 本书封面 前言 第1章 Oracle数据库概述 1.1 Oracle数据库产品结构及组成 1.1.1 标准版 1.1.2 标准版 ...