题意

给定一个字符串和若干个单词,询问能把字符串分解成这些单词的方案数。比如abcd ,有单词a,b,ab,cd:就可以分解成a+b+cd或者ab+cd。

分析

trie树—>DP

代码

(感谢qrc巨神的细心指导,并不是很细心的我竟然也AC了,qrc太巨了!)

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MNODE 400000
#define mod 20071027
int trie[MNODE][],cntnode;
bool tag[MNODE];
int dp[];
void init(int x,char *s,int i){
if(i==strlen(s)) {tag[x]=;return;}
char c=s[i];
if(!trie[x][c-'a']) trie[x][c-'a']=++cntnode;
init(trie[x][c-'a'],s,i+);
}
int main(){
char s[];
int S;
int cas=;
while(scanf("%s",s)!=EOF){
memset(trie,,sizeof(trie));
memset(tag,,sizeof(tag));
cntnode=;
scanf("%d",&S);
char ss[];
while(S--) scanf("%s",ss),init(,ss,);
memset(dp,,sizeof(dp));
dp[]=;
for(int i=;i<strlen(s);i++){
int now=;
for(int j=i;j<strlen(s);j++){
if(trie[now][s[j]-'a']) now=trie[now][s[j]-'a'];
else break;
if(tag[now]) dp[j+]=(dp[j+]+dp[i])%mod;
}
}
printf("Case %d: %d\n",++cas,dp[strlen(s)]);
}
return ;
}

【LA 3942】 Remember the word的更多相关文章

  1. 【BZOJ 3942】 Censoring

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3942 [算法] 栈 + KMP [代码] #include<bits/stdc ...

  2. 【33.20%】【LA 4320】【Ping pong】

    [Description] N (3 ≤ N ≤ 20000) ping pong players live along a west-east street(consider the street ...

  3. 【软件学习】怎么在Word里面设置MathType分隔符,使公式按照章节自动编号

    前提 确保已安装好了MathType,且在设置为Word加载项 若没有安装或设置为加载项,请转至博客另一篇文章: [软件学习]如何下载安装Mathtype,并将其加载至Word 第一步 点击MathT ...

  4. 【LA 5713 】 Qin Shi Huang's National Road System (MST)

    [题意] 秦始皇要在n个城市之间修路,而徐福声可以用法术位秦始皇免费修1条路,每个城市还有人口数,现要求徐福声所修之路的两城市的人口数之和A尽量大,而使n个城市互通需要修的路长B尽量短,从而使得A/B ...

  5. 【LA 3641】 Leonardo's Notebook (置换群)

    [题意] 给出26个大写字母组成 字符串B问是否存在一个置换A使得A^2 = B [分析] 置换前面已经说了,做了这题之后有了更深的了解. 再说说置换群.   首先是群. 置换群的元素是置换,运算时是 ...

  6. 【排障】每次打开word都提示要安装配置

    为什么每次打开word都提示要安装配置?很多人在打开word时,总是提示要安装配置一遍,花去不少时间,这是由于电脑里有两个不同版本的office软件,产生的原因可能是原来的卸载了没卸载干净,或是安装了 ...

  7. 【LA 3487】Duopoly(图论--网络流最小割 经典题)

    题意:C公司有一些资源,每种只有1个,有A.B两个公司分别对其中一些资源进行分组竞标,每组竞标对一些资源出一个总价.问C公司的最大收益. 解法:最小割.将A公司的竞标与源点相连,B公司的与汇点相连,边 ...

  8. 【总结整理】word使用技巧

    Tab+Enter,在编过号以后,会自动编号段落 Ctrl + D调出字体栏,配合Tab+Enter全键盘操作吧 Ctrl + L 左对齐, Ctrl + R 右对齐, Ctrl + E 居中 Ctr ...

  9. 【转】C#操作Word的超详细总结

    本文中用C#来操作Word,包括: 创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设置页眉.页码: 插入图片,设置 ...

随机推荐

  1. 关于Html中的title属性内容换行,以及Bootstrap的tooltip的使用

    1.HTML中的title属性的内容换行: 鼠标经过悬停于对象时提示内容(title属性内容)换行排版方法,html title 换行方法总结. html的title属性默认是显示一行的.如何换行呢? ...

  2. Java知识回顾 (18)Java 8、9、11的新特性

    Java 8 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 Jav ...

  3. SQL常见的一些面试题(太有用啦)

    SQL常见面试题 1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu张三    语文       81张三     数学       75李四 ...

  4. thrift简单示例 (go语言)

    这个thrift的简单示例来自于官网 (http://thrift.apache.org/tutorial/go), 因为官方提供的例子简单易懂, 所以没有必要额外考虑新的例子. 关于安装的教程, 可 ...

  5. 虚拟机网络设置(NAT模式)

    虚拟机网络设置(NAT模式) linux 1. 设置虚拟机网络 1.1. NAT子网设置 1.2. 网卡配置文件设置 1.3. 重启网络服务 1.4. 配置端口转发 2. 配置网络共享 预期想要搭建本 ...

  6. Linux必知必会--grep

    花更少的时间,去验证一件事情:你到底是富翁,还是贫民. --一位历经沧桑的炒客 转自:https://man.linuxde.net/grep grep命令 grep(global search re ...

  7. springcloud中微服务的优雅停机(已验证)

    大部分项目部署中,为了方便,可能都直接使用kill -9 服务的pid来停掉服务. 但是由于Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提供者然后出错. 可以采用以 ...

  8. Linux/Raspbian 每个目录用途说明

    本文转自无聊小博,很多刚接触树莓派/Linux 的同学会在给树莓派安装.卸载.配置软件时,软件和配置文件等存放在哪儿产生疑惑.也会遇到诸如“磁盘分区”.U盘挂载等涉及到的目录路径问题.Linux 的目 ...

  9. jmeter脚本中请求参数获取的几种方式

     a.从数据库获取: 譬如接口请求参数中id的值,我需要从数据库获取,如下设置: 先设置jdbc connection configuration,然后设置JDBC b.从CSV获取: 获取CSV文件 ...

  10. Centos 6.5出现yum安装慢的情况

    最近在用Centos 6.5 的时候出现了这种情况, Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirro ...