Link:

BZOJ 4060 传送门

Solution:

可以发现字符串间的关系可以构成一棵树

于是我们先用字符串哈希建树,再树形$dp$即可

设$dp[i][j]$为第$i$个节点从$P$字符串的第$j$为开始匹配的失配位置

则有$dp[i][j]=dp[ch[i][1]][dp[ch[i][0]][j]]$

在叶子节点时暴力匹配就行了,复杂度$O(k*P)$

Code:

#include <bits/stdc++.h>

using namespace std;

const int MAXN=,ML=;
int T,n,hs[MAXN],dp[MAXN][ML],ch[MAXN][],root;
char S[ML],P[ML],dat[MAXN][ML],tmp[ML],a[ML]; inline int hash(char t[])
{
int ret=;
for(int i=;i<;i++)
ret=ret*+((i<strlen(t))?(t[i]-'A'+):);
return ret;
} int dfs(int x,int y)
{
if(dp[x][y]!=-) return dp[x][y];
if(ch[x][]) return dp[x][y]=dfs(ch[x][],dfs(ch[x][],y));
int k=y;
for(int cur=;k<strlen(P) && cur<strlen(dat[x]);cur++)
if(dat[x][cur]==P[k]) k++;
return dp[x][y]=k;
} int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);memset(dp,-,sizeof(dp));
for(int i=;i<=n;i++)
{
scanf("%s%s%s",a,tmp,dat[i]);hs[i]=hash(a);
if(dat[i][]>='a' && dat[i][]<='z') ch[i][]=ch[i][]=;
else
{
ch[i][]=hash(dat[i]);
scanf("%s%s",tmp,dat[i]);
ch[i][]=hash(dat[i]);
}
} for(int i=;i<=n;i++) if(ch[i][])
for(int j=;j<;j++) for(int k=;k<=n;k++)
if(ch[i][j]==hs[k]) ch[i][j]=k;
scanf("%s%s",S,P);
for(int i=;i<=n;i++) if(hs[i]==hash(S)) root=i; printf((dfs(root,)<strlen(P))?"NO\n":"YES\n");
}
return ;
}

Review:

如要对字符数组大量比较+判等于,最好使用字符串$Hash$ (采用27进制)

如果不考虑$string$输入效率较低,则对$string$用$map$或$hash\_ map$更优

[BZOJ 4060] Word Equations的更多相关文章

  1. BZOJ4060 : [Cerc2012]Word equations

    首先通过hash建树 设f[i][j]表示第i个特殊符号从P的第j位开始匹配能到达哪里 记忆化搜索,对于底层贪心匹配. #include<cstdio> #include<cstri ...

  2. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  3. 要back的题目 先立一个flag

    要back的题目 目标是全绿!back一题删一题! acmm7 1003 1004 acmm8 1003 1004 sysu20181013 Stat Origin Title Solved A Gy ...

  4. BZOJ 1622: [Usaco2008 Open]Word Power 名字的能量

    题目 1622: [Usaco2008 Open]Word Power 名字的能量 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 349  Solved ...

  5. 【BZOJ】1622: [Usaco2008 Open]Word Power 名字的能量(dp/-模拟)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1622 这题我搜的题解是dp,我也觉得是dp,但是好像比模拟慢啊!!!! 1400ms不科学! 设f[ ...

  6. BZOJ——1622: [Usaco2008 Open]Word Power 名字的能量

    http://www.lydsy.com/JudgeOnline/problem.php?id=1622 Description     约翰想要计算他那N(1≤N≤1000)只奶牛的名字的能量.每只 ...

  7. bzoj 1622: [Usaco2008 Open]Word Power 名字的能量【模拟】

    模拟即可,注意包含可以是不连续的 方便起见读入的时候全转成小写 #include<iostream> #include<cstdio> using namespace std; ...

  8. 怎样将word文件转化为Latex文件:word-to-latex-2.56具体解释

    首先推荐大家读一读这篇博文:http://blog.csdn.net/ibingow/article/details/8613556 --------------------------------- ...

  9. [BZOJ]1071 组队(SCOI2007)

    一道比较NB的套路题. Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为mi ...

随机推荐

  1. Codeforces Round #526 (Div. 2) E. The Fair Nut and Strings

    E. The Fair Nut and Strings 题目链接:https://codeforces.com/contest/1084/problem/E 题意: 输入n,k,k代表一共有长度为n的 ...

  2. wget命令下载FTP整个目录进行文件备份

    使用wget下载整个FTP目录,可以用于服务器间文件传输,进行远程备份.通过限制网速,可以解决带宽限制问题. #wget ftp://IP:PORT/* --ftp-user=xxx --ftp-pa ...

  3. javascript中top、clientTop、scrollTop、offsetTop的讲解

    下面结合各上图介绍一下各个属性的作用: 一.offsetTop属性: 此属性可以获取元素的上外缘距离最近采用定位父元素内壁的距离,如果父元素中没有采用定位的,则是获取上外边缘距离文档内壁的距离.所谓的 ...

  4. L2-002. 链表去重---模拟

    https://www.patest.cn/contests/gplt/L2-002 L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 ...

  5. Posted和Non-Posted传送方式

    PCI总线规定了两类数据传送方式,分别是Posted和Non-Posted数据传送方式.其中使用Posted数据传送方式的总线事务也被称为Posted总线事务:而使用Non-Posted数据传送方式的 ...

  6. 【BZOJ1419】 Red is good [期望DP]

    Red is good Time Limit: 10 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 桌面上有R张红牌和B张 ...

  7. [BZOJ3698]XWW的难题解题报告|上下界网络流|有源汇最大流

    XWW是个影响力很大的人,他有很多的追随者.这些追随者都想要加入XWW教成为XWW的教徒.但是这并不容易,需要通过XWW的考核.XWW给你出了这么一个难题:XWW给你一个N*N的正实数矩阵A,满足XW ...

  8. CodeVS1747_NOI2002_荒岛野人_Savage_C++

    题目:http://codevs.cn/problem/1747/ 对于一个环,我们经常用取余来表示它走过若干圈后的位置 那么第 i 个野人第 x 年时所在的位置可表示为:(c[i]+p[i]*x)% ...

  9. Linux搭建JavaEE开发环境与Tomcat——(十)

    服务器通过ip地址访问是不需要备案的,如果通过域名访问的话才需要备案. 1.安装Mysql 在CentOS7上安装MySQL时,出现了以下的提示: 原因是: CentOS7带有MariaDB而不是my ...

  10. C++学习笔记之——内联函数,引用

    本文为原创作品,转载请注明出处 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 作者:晨凫 ...