这道题太腻害辣。。我太菜了想不出来。。

看了题解之后 还是有点懵。。 你们可以去看看这位大神的 点击打开链接

首先 我们定义状态 f[i][j][k][l]表示字符串区间[i,j]匹配到第k个小串的第l位 当你的l==len[k]的时候就表示i到j这一段可以消掉了 v[i][j]表示i到j是否可以删掉

然后 显然是会爆空间的 不难发现 数组是bool数组 我们可以压位 我把k这一维压了 于是就有f[i][j][l]的二进制值表示可以匹配到哪些字符串的第l位 就可以  当前位是否等于某l位 从f[i][j-1][l-1]来转移。或者v[j][k]就可以 f[i][k][l]|=f[i][j-1][l]

其实i的这一维在dp中就可以省掉了 i并没有什么卵用。。

最后在通过v数组n^2搞一遍就好了

有什么不明白具体看代码。。

用lowbit省时间 居然84ms排11 233333

#include<bits/stdc++.h>
#define me(a,x) memset(a,x,sizeof a)
using namespace std;
const int N=152,M=32,L=22;
char c[N],s[M][L]; bool v[N][N];
int f[N][L],g[N],p[4321],l[M],q;
int main()
{int i,j,k,e,x,n,m;scanf("%s%d",c+1,&m); n=strlen(c+1);for(i=1;i<=m;i++)scanf("%s",s[i]+1),l[i]=strlen(s[i]+1),q=max(q,l[i]);for(i=1;i<=m;i++)p[(1<<i)%4321]=i;for(i=n;i>0;i--){me(f,0); f[i-1][0]=(1<<(m+1))-1;for(j=i;j<=n;j++){for(e=1;e<=q;e++)for(x=f[j-1][e-1];x;x-=x&(-x)){k=p[(x&(-x))%4321]; if(s[k][e]==c[j])f[j][e]|=1<<k;}for(k=j;k<=n;k++)if(v[j][k])for(e=0;e<=q;e++)f[k][e]|=f[j-1][e];}for(j=i;j<=n;j++)for(k=1;k<=m;k++)if(f[j][l[k]]&(1<<k)){v[i][j]=1; break;}}for(i=1;i<=n;i++){g[i]=g[i-1]+1;for(j=1;j<=i;j++)if(v[j][i])g[i]=min(g[i],g[j-1]);}printf("%d\n",g[n]);return 0;
}

BZOJ 2121: 字符串游戏相关推荐

  1. bzoj 2121 字符串游戏

    BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删除,如果删除,则将删除后L ...

  2. bzoj 2121 字符串游戏(字符串dp)

    Description BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删除 ...

  3. .net mvc actionresult 返回字符串_字符串游戏之无效的身份证

    出场人物介绍 小美:小学4年级学生,参加了学校的编程兴趣小组,已经了解了Python语言的基本语法,能够看懂一些简单的程序.她做事风风火火,对所有的事情都很好奇,喜欢打破砂锅问到底,是一个叫人又爱又恨 ...

  4. python 路径拼接字符串_字符串游戏之拼接字符串

    出场人物介绍 小美:小学4年级学生,参加了学校的编程兴趣小组,已经了解了Python语言的基本语法,能够看懂一些简单的程序.她做事风风火火,对所有的事物都很好奇,喜欢打破砂锅问到底,是一个叫人又爱又恨 ...

  5. bzoj2121 字符串游戏

    题目链接:bzoj2121 题目大意: BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对于一个在集合S中的字符串p,如果p在L中出现,BX就可以 ...

  6. 纪中20日c组模拟赛T1 2121. 简单游戏

    T1 2121. 简单游戏 (File IO): input:easy.in output:easy.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto Pro ...

  7. 【2022 省选训练赛 Contest 17 A】字符串游戏(结论)

    字符串游戏 题目链接:2022 省选训练赛 Contest 17 A 题目大意 有一个字符串一开始是空的,两个人轮流操作在任意位置插入 0/1. 然后给你一个串 s,先手目标是使得 s 是字符串的子串 ...

  8. python身份证的秘密_Python算法之旅字符串游戏之身份证号的秘密

    最近在力扣(LeetCode)网闲逛,发现很多题目的官方题解都是用Python语言来描述的,这说明大家已经逐渐认识到Python语言描述算法的优越性:它语法简明,内置函数丰富,表述直截了当,可以用最简 ...

  9. BZOJ 3277 串 BZOJ 3473 字符串 (广义后缀自动机、时间复杂度分析、启发式合并、线段树合并、主席树)...

    标签那么长是因为做法太多了... 题目链接: (bzoj 3277) https://www.lydsy.com/JudgeOnline/problem.php?id=3277 (bzoj 3473) ...

最新文章

  1. android 下拉菜单触发_Android实现三级联动下拉框 城市选择器(简单)
  2. 基于angular2实现用户登录并信息持久化的一些理解(二)
  3. redis分布式锁-基本概念与实现方式对比
  4. 微擎任意消息该公众号提供的服务器,该公众号提供的服务出现故障,请稍后再试...
  5. Python-类的学习
  6. 使用机器学习预测天气_使用机器学习的二手车价格预测
  7. 0419 一些不错的UI作品,以后陆续更新
  8. vxworks的default boot line说明
  9. linux parallel 命令,Linux 并行处理神器 GNU Parallel 简明教程
  10. 作业 给计算机编号 winform
  11. python实现Queue和Stack
  12. winform的ftp方式上传
  13. 新手学Docker(1)Hello World
  14. Excel在统计分析中的应用—第十章—方差分析-方差分析表
  15. redisson分布式锁实现原理
  16. 电脑进入pe时蓝屏_进PE蓝屏的几个原因
  17. Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南
  18. 【SAS NOTE】substr字符串提取函数
  19. 属性动画+购物车+结算
  20. ORACLE 习题(一)

热门文章

  1. dns服务器会改变运营商吗,随便修改DNS会对网络产生什么影响?
  2. 计算机服务老是需要重新启动,服务器重启遇到“你的电脑遇到问题,需要重新启动。我们只收集某些错误信息,然后你可以重新启动。(完成0%)”...
  3. 两个实打实干活的同事离职了,老板连谈都没谈,一句挽留都没有,你怎么看
  4. 【玩转python】Flask基金数据可视化
  5. Unity3d中异形屏的适配
  6. facebook最近开源的python图像增强库—Augly
  7. Super Ugly Number
  8. linux aeon gcc,在rosettaCM中,一些操作所需要的linux命令
  9. css ime-mode控制输入全角和半角
  10. 微信web开发者工具 “当前代理是非安全代理” 或者“Error:unable vertify the first certification”