UVA3942 Remember the Word

题意:输入一个字符串(l<300000),一个n(n<4000),接下来n个字符串(l<100),问能分解成几种字符串

题解:直接计算复杂度高,考虑DP,dp[i]代表以第i个字符开头的字符串分解的方案数,dp[i] = sum(dp[j+len]),len代表可以找到的字符串长度,多模式的字符串用到了char树,放在char树上跑一遍,找到以i+1开头的字符串复杂度,一开始写搜索。。后来发现复杂度过不去

#include <bits/stdc++.h>
#define ll long long
#define maxn 100*4000+10
#define siz 26
#define mod 20071027
using namespace std;
char s[300010], s1[110];
ll l, dp[300010];
struct Tire{ll ch[maxn][siz];ll val[maxn], sz;//节点总数Tire(){sz = 1;memset(ch, 0, sizeof(ch));}ll idx(char c){return c-'a';}void insert(char *s, ll v){ll u = 0,n = strlen(s);for(ll i=0;i<n;i++){ll c = idx(s[i]);if(!ch[u][c]){memset(ch[sz], 0, sizeof(ch[sz]));val[sz] = 0;ch[u][c] = sz++;}u = ch[u][c];}val[u] = v;}
}Tir;
int main(){ll n, t = 0;while(~scanf("%s", s)){l = strlen(s);memset(Tir.ch, 0, sizeof(Tir.ch));Tir.sz = 1;memset(dp, 0, sizeof(dp));dp[l] = 1;scanf("%lld", &n);for(ll i=1;i<=n;i++){scanf("%s", s1);Tir.insert(s1, i);}for(int i=l-1;i>=0;i--){int u = 0;for(int j=i;j<l;j++){if(Tir.ch[u][s[j]-'a']==0) break;u = Tir.ch[u][s[j]-'a'];if(Tir.val[u]) dp[i] = (dp[i]+dp[j+1])%mod;}}printf("Case %lld: %lld\n", ++t, dp[0]);}return 0;
}

 

转载于:https://www.cnblogs.com/Noevon/p/7275558.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MEMS为何独领风骚?看完这篇秒懂!

显微镜下的MEMS结构&#xff08;注意图片上的刻度&#xff0c;是微米哦&#xff09;文章来源&#xff1a;硬件十万个为什么卡西欧早年就以电机马达、继电器等机电产品闻名。如今的卡西欧本身就是MEMS的制造商之一&#xff0c;用MEMS的思路解决传统机械手表遇到的问题是卡西欧的…

如何把我的Java程序变成exe文件?

JAVA是一种“跨平台”的语言&#xff0c;拥有“一次编写&#xff0c;处处运行”的特点&#xff0c;让它成为当今IT行业&#xff0c;必不可少的一门编程语言。每一个软件开发完成之后&#xff0c;应该大家都需要打包程序并发送给客户&#xff0c;常见的方式&#xff1a;java程序…

福布斯:混合现实未来的八大应用场景

来源&#xff1a;AR工业应用近日&#xff0c;福布斯发布了一篇关于混合现实未来的八个值得关注的领域和应用场景。文中提到&#xff1a;随着时间的推移&#xff0c;技术永远在不断进展&#xff0c;而未来技术中很可能是AR和VR的结合形式。有报告显示&#xff1a;2024年&#xf…

php怎么实现简单的mvc框架,php实现简单的MVC框架实例

这篇文章主要介绍了php实现简单的MVC框架,较为详细的分析了php实现MVC框架的相关实现技巧与注意事项,具有一定参考借鉴价值,需要的朋友可以参考下本文实例讲述了php实现简单的MVC框架。分享给大家供大家参考。具体如下&#xff1a;在开始之前需要知道的知识1.php基础知识2.单一…

演化树,靠不住?挑战物种出现与灭绝速率的估算方法

来源&#xff1a;Nature自然科研原文作者&#xff1a;Mark Pagel以演化树形式绘制的图表能够显示物种之间的系统发育关系&#xff0c;这类图表被广泛用于估算新物种出现以及现存物种灭绝的速率&#xff0c;但一项新的研究对这种方法提出了质疑。科学家经常试图对生物的过去是什…

Windows中使用wget整站下载

weget wget安装 Windows下载 点击下载 https://eternallybored.org/misc/wget/会跳转到wget的下载页&#xff0c;根据自己电脑选择下载的文件&#xff0c;我下载的版本为wget-1.19.1-win64.zip下载完成后解压文件,并且双击exe使用wget wget使用 在需要下载到网站的位置新建文…

java中事件的概念,事件中心上IoTHub数据的概念

我是IoTHub的新手 . 我有一个关于数据如何发送到IoTHub \ EventHub的基本查询 . 从我的阅读中我看到 - 和 IoT Hub and Event Hub - 作为不同的实体 .My Requirement我需要开发一个可以将数据从Raspberry Pi3设备发送到IoT Hub的应用程序另一个Web应用程序&#xff0c;用于订阅…

Android媒体解码MediaCodec,MediaExtractor

Android提供了MediaPlayer播放器播放媒体文件&#xff0c;其实MediaPlyer只是对Android Media包下的MediaCodec和MediaExtractor进行了包装&#xff0c;方便使用。但是最好理解下Android媒体文件的解码&#xff0c;编码和渲染流程。 Shape Of My Heart.mp4 <source src"…

2020五大技术趋势一览!超自动化、人类增强技术、无人驾驶发展、机器视觉崛起、区块链实用化...

文章原载于 RichardLiu自动驾驶技术的发展近年来&#xff0c;自动驾驶技术一直在发展&#xff0c;特斯拉、英特尔等大公司在这一领域取得了长足的进展。虽然我们还没有达到L4级或L5级自动驾驶汽车的水平&#xff0c;但我们已经很接近了。为了解释每个级别的含义&#xff0c;下…

ansible执行mysql命令,Ansible常用命令(ad-hoc 命令)

Ansible提供两种方式去完成任务&#xff1a;1、ad-hoc命令2、写Ansible playbook脚本前者可以解决一些简单的任务&#xff0c;后者解决较复杂的任务(ad-hoc命令和ansible playbook的关系类似于在命令行敲入shell命令和写shell scripts两者之间的关系)。ansible命令应用基础语法…

Facebook 开源聊天机器人Blender,经94 亿个参数强化训练,更具“人情味”

来源&#xff1a;AI前线作者 | Kyle Wiggers编译 | Sambodhi策划 & 编辑 | 刘燕不久前&#xff0c;Facebook 开源了号称是全球最强大的聊天机器人 Blender&#xff0c;它标志着 Facebook 在 AI 领域的新进展&#xff1a;新的聊天机器人不仅解决了此前聊天机器人的固有缺点&…

微服务go还是java,Java微服务 vs Go微服务,究竟谁更强!?

前言Java微服务能像Go微服务一样快吗&#xff1f;这是我最近一直在思索地一个问题。去年8月份的the Oracle Groundbreakers Tour 2020 LATAM大会上&#xff0c;Mark Nelson和Peter Nagy就对此做过一系列基础的的测试用以比较。接下来就给大家介绍下。在程序员圈子里&#xff0c…

php类中双冒号和-的区别

就是为了区分对象的方法和属性&#xff0c;和是访问类的静态方法和静态变量&#xff0c;类的静态方法和静态变量是类公用的&#xff0c;不需要实例化也能访问&#xff0c;而对象的方法和属性是每个对象特有的&#xff0c;因此必须先实例化。其他语言如C,JAVA等也是一样的&#…

java用循环语法在窗体中显示文字,如果子窗体在窗体视图中,则访问2003循环当前页面不起作用...

我有一个包含多个子表单的表单 .我想有以下行为&#xff1a;按主窗体的最后一个字段中的tab键或子窗体的最后一个字段中焦点移动到下一个子窗体或根据定义的Tab顺序返回到主窗体 .为此&#xff0c;所有子表单和主表单都将Cycle属性设置为Current页面 .除了表单视图中显示的子表…

Defi安全-Mono攻击事件分析--etherscan+phalcon

MonoX攻击事件相关信息 在Ethereum和Polygon网络都发生了&#xff0c;攻击手段相同&#xff0c;以Ethereum为例进行分析&#xff1a; 攻击者地址&#xff1a;MonoX Finance Exploiter | Address 0xecbe385f78041895c311070f344b55bfaa953258 | Etherscan 攻击合约&#xff1a…

特斯拉自动驾驶靠自研芯片,国产智能汽车怎么办?

文章来源&#xff1a;量子位从这个月开始&#xff0c;特斯拉终于跌破30万&#xff0c;进入补贴行列&#xff0c;与国产汽车展开正面竞争。在国产汽车和特斯拉之间该如何选择&#xff0c;除了续航里程外&#xff0c;最重要的可能就是智能驾驶系统了。智能驾驶系统该怎么比较&…

Codeforces Round #263 (Div. 2) D. Appleman and Tree 树形dp

链接&#xff1a; http://codeforces.com/contest/462/problem/D 题意&#xff1a; 给定n个点的树&#xff0c; 0为根&#xff0c;下面n-1行表示每个点的父节点 最后一行n个数 表示每个点的颜色&#xff0c;0为白色&#xff0c;1为黑色。 把树分成若干个联通块使得每个联通块有…

【星·企业】竞逐卫星互联网“新基建”,「九天微星」完成2.7亿元B 轮融资

图为九天微星一箭七星“瓢虫系列”主星示意图来源&#xff1a;中科创星据了解&#xff0c;「九天微星」将用此轮融资在河北唐山和四川宜宾分别建设互联网卫星平台、载荷自动化产线&#xff0c;同时强化宽带通信系统研发能力&#xff0c;加速地面终端产品投产。九天微星卫星工厂…

java kafka搭建,Apache Kafka 安装步骤

概览安装过程总共分为 3 大块&#xff0c;第一 Java 环境不必多说&#xff0c;第二 Zookeeper 安装&#xff0c;第三 Kafka 安装。概念了解Kafka 有几个重要的概念需要先了解一下名词解释broker可以理解为 Kafka 所在的服务器ZooKeeper分布式服务框架在 Kafka 中的作用主要负责…

Java的for-each循环

for (循环变量类型 循环变量名称 : 要被遍历的对象) 例&#xff1a; for (String string:str) for(int i0;i<str.size();i){   String string str[i];} 上面代码简单点来描述就是把str里的内容依次遍历给string转载于:https://www.cnblogs.com/CYG7/p/7289497.html