Manthan, Codefest 16 C. Spy Syndrome 2(Trie树套DP)
来源:互联网 发布:h3c端口安全 编辑:程序博客网 时间:2024/06/08 01:57
【题意】给你m个单词的词典和一句话,这句话中的每个单词都来自字典,字典中的每一个单词重复可用,把这句话所有大写字母变成小写字母,然后反转单词去掉空格,要求你恢复这句话。
【解题方法】Trie+dp.dp[i]=:以i结尾的字符串是否可以解密,为记录答案直接存长度就可以了。复杂度O(n*1000)
【AC 代码】
//zxy#include <bits/stdc++.h>using namespace std;const int maxn=1e5+10;const int maxm=1e6+10;int n,m,dp[maxn];string s,t[maxn];struct Trie{ int rt,sz; int nex[maxm][26],id[maxm]; int newnode(){ id[sz]=-1; memset(nex[sz],-1,sizeof(nex[sz])); return sz++; } void init(){ sz=0; rt=newnode(); } void insert(string &s,int x){ int u=rt; for(int i=(int)s.size()-1; ~i; i--){ int c=tolower(s[i])-'a'; int &v=nex[u][c]; if(v==-1) v=newnode(); u=v; } id[u]=x; } void query(int idx){ int u=rt; for(int i=idx; i<(int)s.size(); i++){ u=nex[u][s[i]-'a']; if(u==-1) return ; if(~id[u]&&!dp[i+1]) dp[i+1]=id[u]; } }}trie;int main(){ cin>>n>>s>>m; trie.init(); for(int i=1; i<=m; i++){ cin>>t[i]; trie.insert(t[i],i); } dp[0]=1; for(int i=0; i<n; i++){ if(!dp[i]) continue; trie.query(i); } vector<int>ans; int u=n; while(u){ ans.push_back(dp[u]); u-=t[dp[u]].size(); } for(int i=ans.size()-1; ~i; i--){ cout<<t[ans[i]]<<" "; } cout<<endl;}
0 0
- Manthan, Codefest 16 C. Spy Syndrome 2(Trie树套DP)
- Manthan, Codefest 16 (C. Spy Syndrome 2 (trie树 + DP))
- Manthan, Codefest 16 C. Spy Syndrome 2(dp、trie|哈希)
- Manthan, Codefest 16 -C. Spy Syndrome 2
- Manthan, Codefest 16 633C Spy Syndrome 2(dfs + stl)
- Manthan, Codefest 16 C. Spy Syndrome 2 ★
- 【Manthan, Codefest 16C】【DP SET-MAP 字典树哈希法】Spy Syndrome 2 字符串是否由字典库单词反转加密而成
- Codeforces 633C Spy Syndrome 2(Trie+dp)
- codeforces 633C. Spy Syndrome 2 trie + dp
- trie+dp+打印路径 Codeforces633C Spy Syndrome 2
- Codeforces 633C Spy Syndrome 2(Trie+暴力)
- Codeforces 633C Spy Syndrome 2 【字典树 + DFS】
- Codeforces 633C Spy Syndrome 2 字典树
- CodeForces 633C Spy Syndrome 2
- CF633C Spy Syndrome 2
- Manthan Codefest 16 解题报告
- Manthan, Codefest 17 C. Helga Hufflepuff's Cup(树形DP)
- Codeforces Manthan, Codefest 17 C. Helga Hufflepuff's Cup 树型DP
- 史上最全的 Java 新手问题汇总
- C# 为应用添加自动更新和运行异常信息捕获
- Android性能优化
- centos VM VirtualBox虚拟机设置NAT网络上外网
- 不一样的 string 函数
- Manthan, Codefest 16 C. Spy Syndrome 2(Trie树套DP)
- 修改apache的rewrite规则,测试时竟然绕住了。
- PHP的执行原理/执行流程
- tjut 2837
- jsp与jsp之间的跳转
- iOS App对IPv6的支持
- 8个常用的PHP安全函数
- linux ——hadoop免密码登陆的配置
- spring源码分析-web容器初始化过程解析1