CF633C:Spy Syndrome 2——题解
https://vjudge.net/problem/CodeForces-633C
http://codeforces.com/problemset/problem/633/C
点击这里看巨佬题解
#include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; const int M=1001000; int n,m,dp[M],l[M],tot=1,now,ll,pos[M]; char s[M],t[M]; vector<int>v; struct node{int ed,son[26];node(){ed=0;memset(son,0,sizeof(son));} }tree[1000001]; void insert(int k){now=1;int q;for(int i=ll+1;i<=l[k]+ll;i++){if(t[i]<'a')q='a'-'A';else q=0;if(tree[now].son[t[i]-'a'+q]==0){tot++;tree[now].son[t[i]-'a'+q]=tot;}now=tree[now].son[t[i]-'a'+q];}tree[now].ed=k;return; } int main(){cin>>n;cin>>s+1;cin>>m;for(int i=1;i<=m;i++){cin>>t+ll+1;pos[i]=ll+1;l[i]=strlen(t+ll+1);insert(i);ll+=l[i];}dp[0]=1;for(int i=1;i<=n;i++){now=1;for(int j=1;j<=i&&now;j++){now=tree[now].son[s[i-j+1]-'a'];if(tree[now].ed&&dp[i-j]){dp[i]=tree[now].ed;break;}}}for(int i=n;i>=1;i-=l[dp[i]]){v.push_back(dp[i]);}int ss=v.size();for(int i=ss-1;i>=0;i--){for(int j=1;j<=l[v[i]];j++){putchar(t[pos[v[i]]+j-1]);}putchar(' ');}return 0; }
转载于:https://www.cnblogs.com/luyouqi233/p/7880037.html
CF633C:Spy Syndrome 2——题解相关推荐
- CF633C Spy Syndrome 2(字典树+dp)
CF633C Spy Syndrome 2 原题链接 说是 dpdpdp 但是感觉说是一个记忆化也可以.我们定义一个 dpdpdp 数组,其 dp[i]dp[i]dp[i] 含义为将加密串前 iii ...
- CF633C Spy Syndrome 2
嘟嘟嘟 题面:把一句话加密:1.所有字母变成小写.2.翻转所有单词.3.去掉空格.然后给你一句加密后的字符串以及一些出现在原句和没有出现在原句的单词,让你还原原句.注意,每一个单词可以使用多次,如果有 ...
- CF633C Spy Syndrome 2 trie树
这个模型以前绝对见过,模拟赛的时候开始敲了一个AC自动机,纯属脑抽~ code: #include <bits/stdc++.h> #define N 5000006 #define NN ...
- CF633C Spy Syndrome 2 ACA+DP
思路 首先把原串取反一下,就可以用mmm个正序模式串做匹配了. 定义dp[i]dp[i]dp[i]表示1-i1\dots i1-i的匹配状态(0或1), 然后对mmm个串插入到AC自动机上构造fail ...
- Codeforces633C Spy Syndrome 2 (单词Trie)
题目链接: Spy Syndrome 2 大致题意 给定一个长度为n的字符串str, 全部由小写字母组成. 接下来给出单词列表, 共包含m个单词, 每个单词由大写和小写字母组成. 字符串str可以保证 ...
- Codeforces C. Spy Syndrome 2
题意: 给你一个长度为n的字符串S,和m个字符串T,询问能不能用这些字符串T将他们倒序,然后组成S 题解: 将这些m个字符串T,倒序放入Trie树中,然后用S在Trie树上匹配就好了 AC代码: #i ...
- Practice II 字符串
本来想做数论的--但是别的dalao都在做制胡窜 所以-- Chapter I KMP KMP 最关键的不是这个半暴力的单模匹配 而是这个nxt数组 经常出一些奇怪的题 尤其是循环节可以直接由T-nx ...
- 谷歌空间从服务器检索信息时出错,谷歌,火狐提示来自http://xxx.com/file的资源已被阻止,因为 MIME 类型(text/plain)不匹配(X-Content-Type-Opt...
在使用ueditor编辑的过程中无法上传图片,谷歌火狐浏览器提示Cross-Origin Read Blocking (CORB) blocked cross-origin response http ...
- Manthan, Codefest 16
暴力 A - Ebony and Ivory import java.util.*; import java.io.*;public class Main {public static void ma ...
- hdu 4468 spy 极其精彩的一道kmp灵活运用题
出的超级好的一道题.至于好在哪里,请思考题目: 题意抽象出来为给定一个字符串r,找出它的一个最短后缀s,使得这个r可以被 s的某前缀+s的某前缀+......+s的某前缀+s本身构造出来. 具体题目描 ...
最新文章
- c语言结构体共用体枚举实例程序,10-C语言结构体-共用体-枚举
- 一文了解文件上传全过程(1.8w字深度解析)「前端进阶必备」
- Python运行方式
- 【转载】SDRAM时钟相移估算
- concurrent: wai notify notifyAll
- Python判断变量类型
- 虚拟机python建站_搭建本地虚拟服务器linux(CentOS 7)的python虚拟环境(Hyper-V演示)...
- Jsoup获取所有链接
- 如何伪装成一个彻头彻尾的程序员?
- Fork/Join 框架-设计与实现(翻译自论文《A Java Fork/Join Framework》原作者 Doug Lea)...
- eclipse下载以及下载web插件速度慢的解决方法
- 数据库实验一——数据定义
- C# 代码编辑器实现-概述
- win10卸载预装软件
- 目前常用 心电数据库ECG:MITBIH,AHA,CSE,ST-T,PTB,PAF 详细介绍+下载
- web前端html实例-Html5实现的语音搜索功能
- 北京大学简约毕业答辩PPT模板
- C#销毁资源,释放内存,GC垃圾回收
- 做人做事,必须要搞清楚的9个顺序
- Excel2016图片缩放后不清晰