说在前面

并没有什么想说的,但是要保持格式=w=


题目

BZOJ5336传送门
洛谷P4590传送门
看题可戳传送门


解法

这道题和BZOJ3864十分相似
不同之处就是不能出现连续的「NOI」,对于这个限制,我们再在dp数组加一维,表示当前已经有「NOI」的前0/1/2个字母,分类讨论转移即可


下面是代码

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std ;const int P = 1e9 + 7 ;
int N , K , mp[127] , trans[1<<15][3] , popcnt[1<<15] ;
int dp[2][1<<15][3] ;
char s[20] ;void preWork(){int tmp[20] , d[20] ; tmp[0] = d[0] = 0 ;for( int se = 0 , lim = ( 1 << K ) ; se < lim ; se ++ ){if( se ) popcnt[se] = popcnt[ se^(se&-se) ] + 1 ;for( int j = 1 ; j <= K ; j ++ )tmp[j] = tmp[j-1] + ( bool )( se & ( 1<<( j - 1 ) ) ) ;for( int i = 0 ; i < 3 ; i ++ ){memset( d , 0 , sizeof( d ) ) ;for( int j = 1 ; j <= K ; j ++ ){d[j] = max( d[j-1] , tmp[j] ) ;if( s[j] == i ) d[j] = max( d[j] , tmp[j-1] + 1 ) ;} for( int j = 0 ; j < K ; j ++ )if( d[j] != d[j+1] ) trans[se][i] |= ( 1 << j ) ;}}
}void sadd( int &a , int b ){a += b ;if( a >= P ) a -= P ;
}int ans[20] ;
void solve(){int (*now)[3] = dp[0] , (*pre)[3] = dp[1] , siz = sizeof( dp[0] ) ;now[0][0] = 1 ;for( int i = 1 ; i <= N ; i ++ ){swap( now , pre ) , memset( now , 0 , siz ) ;for( int se = 0 , lim = ( 1 << K ) ; se < lim ; se ++ ){// N sadd( now[ trans[se][0] ][1] , ( 1LL * pre[se][0] + pre[se][1] + pre[se][2] )%P ) ;// Osadd( now[ trans[se][1] ][0] , ( pre[se][0] + pre[se][2] )%P ) ;sadd( now[ trans[se][1] ][2] , pre[se][1] ) ;// I sadd( now[ trans[se][2] ][0] , ( pre[se][0] + pre[se][1] )%P ) ;} } for( int se = 0 , lim = ( 1 << K ) ; se < lim ; se ++ )sadd( ans[ popcnt[se] ] , ( 1LL * now[se][0] + now[se][1] + now[se][2] )%P ) ;for( int i = 0 ; i <= K ; i ++ )printf( "%d\n" , ans[i] ) ;
}int main(){mp['N'] = 0 , mp['O'] = 1 , mp['I'] = 2 ;scanf( "%d%d%s" , &N , &K , s + 1 ) ;for( int i = 1 ; i <= K ; i ++ ) s[i] = mp[ s[i] ] ;preWork() ; solve() ;
}

[BZOJ5336]-[TJOI2018]游园会-dp套dp相关推荐

  1. 【luogu P4590】游园会(DP套DP)

    游园会 题目链接:luogu P4590 题目大意 给你一个匹配字符串,然后问你对于所有的长度为 n 的字符串,满足不存在 NOI 的子串,跟匹配字符串 LCS 为 x 的有多少个,对于每个 x 都求 ...

  2. dp套dp(动态规划)

    dp套dp 这是一个对于一类动态规划的计数问题的处理方法,问题常常是如果形式确定就可以直接dp,但是现在却要求满足某个要求的所有方案数,一般的处理方法就是一维负责增量构造,其他维度用来表示内部dp状态 ...

  3. bzoj 3864: Hero meet devil [dp套dp]

    3864: Hero meet devil 题意: 给你一个只由AGCT组成的字符串S (|S| ≤ 15),对于每个0 ≤ .. ≤ |S|,问 有多少个只由AGCT组成的长度为m(1 ≤ m ≤ ...

  4. [XSY] 相似(DP套DP)

    相似 在看这道题前,有必要先看一下DP套DP的入门题[uoj3864]Hero meet devil,附上两篇写得不错的题解: https://blog.csdn.net/Ike940067893/a ...

  5. BZOJ 3864: Hero meet devil (从dp性质实现dp套dp)

    题意:求长度为m的,字符集大小为4的,字符串,中,与字符串S(|S|<=15)的最长公共子序列长度=i的字符串数量.i∈0→∣S∣i \ \in 0 \to |S|i ∈0→∣S∣ 发现这个状态 ...

  6. hdu4899 dp套dp

    题意:只含字母ATGC,  给定一个S串,长度小于等于15,构造满足LCS(S,T)=X的T串,求这样的T串的个数,0<=X<=|S| 网上有一堆题解,但大多数都讲得根本让人无法理解 以下 ...

  7. #3864. Hero meet devil dp套dp + 状压 + 状态机

    传送门 文章目录 题意: 思路: 题意: 给你一个只包含ACGTACGTACGT的串sss,再给你一个mmm,第iii行输出有多少个长度为mmm且只包含ACGTACGTACGT的串与sss的lcslc ...

  8. [ZJOI2019]麻将 题解(dp 套 dp)

    文章目录 前言 题面 题解 坑点 代码 前言 做这道题的想法从看到这场比赛的 T2 的题解时就开始了.3.1 ~ 3.16 号,共 16 天的历程,我才终于搞出来这道题.在这 16 天里,我每天都要花 ...

  9. P4590 [TJOI2018]游园会 dp套dp + 状态机

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的串sss,其只包含NOINOINOI三个字母,给你一个mmm,代表ttt串的长度,ttt串包含NOINOINOI三个字母但是不存在三个连 ...

  10. P4590-[TJOI2018]游园会【dp套dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4590 题目大意 给出一个长度为mmm的字符串sss. 对于每个k∈[0,m]k\in[0,m]k∈[0,m]求有 ...

最新文章

  1. 决策树算法(二)——构建数据集
  2. GitHub上大热的Deep Photo终于有TensorFlow版了!
  3. 安装模拟器遇到的问题
  4. hibernate搭建
  5. a+b 第一个JAVA
  6. Ubuntu下架设FTP服务器(转)
  7. thymeleaf 获取yml中的值_SpringBoot引入Thymeleaf
  8. Cpp 对象模型探索 / 带有虚继承类的构造函数的调用顺序
  9. SVN入门:流程简介 安装配置 项目库配置 客户端 上线方案
  10. 竹签子毕竟是_毕竟是什么程序和功能?
  11. asp建站系统源码_三款适用于企业建站的CMS建站系统
  12. 企业级应用的前端思考。
  13. symmetry methods for differential equations,exercise 1.4
  14. Win10下VB6.0开发之串口通信基础(一)控件属性篇
  15. SVN安装-配置-使用及myeclipse的插件安装(图文)
  16. 用了很多年的 CMS 垃圾收集器,终于换成了 G1,真香!!
  17. 渔村小厂,如何成长为5G霸王
  18. nginx php访问阻塞,php-cgi和php-fpm,Windows环境下解决Nginx+php并发访问阻塞问题。
  19. 投资投机经典著作55本
  20. 基于竞争的MAC协议

热门文章

  1. OSError解决办法
  2. 7-7 六度空间 C语言
  3. 期货开户对资金有要求(期货开户有条件吗)
  4. 用python爬取网易云音乐评论
  5. 支持跨域的html元素
  6. 塑料废物管理行业调研报告 - 市场现状分析与发展前景预测
  7. ERP系统实施之入门
  8. python 稠密重建_使用openMVG+PMVS实现视觉三维重建
  9. 苹果手机用计算机打不开,苹果手机更新ios11后,照片在电脑上打不开怎么办?...
  10. 思科交换机端口模式配置 端口安全配置 思科模拟器