博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ1816:Wild Words——题解
阅读量:6888 次
发布时间:2019-06-27

本文共 813 字,大约阅读时间需要 2 分钟。

比较麻烦的trie。

首先你需要选择针对n还是m建立trie,这里我选择了针对n。

那么就需要面临卡空间的问题。

这里提供了一种链式前向星的方法能够当你不会指针trie的时候卡过空间。(做法看代码吧)

然后针对m进行在trie上的dfs即可。

对于相同字符或?来说,trie下移1位,匹配串移动1位。

对于*来说,trie下移,匹配串移动0~长度位。

(合计这道题就难在模拟上了)

 

#include
#include
#include
#include
using namespace std;const int maxn=600001;char s[21];struct node{ char se; int to; int nxt; vector
ed;}edge[maxn];int head[maxn],cnt=0,cnt1=1;void add(int u,char c){ cnt++;cnt1++; edge[cnt].se=c; edge[cnt].to=cnt1; edge[cnt].nxt=head[u]; head[u]=cnt; return;}void insert(int k){ int u=1; int l=strlen(s); for(int i=0;i
ans;int l;void check(int u,int k,int p){ if(k==l){ if(!edge[p].ed.empty()){ for(int i=0;i

 

转载于:https://www.cnblogs.com/luyouqi233/p/7859317.html

你可能感兴趣的文章
apache与PHP结合,apache默认虚拟机
查看>>
基于域的无线安全认证方案
查看>>
Android平板开发永久实现全屏的方法
查看>>
windows远程连接失败的原因
查看>>
我的友情链接
查看>>
Centos下邮件服务器(postfix)的配置(一)
查看>>
Thread类常用方法
查看>>
Yarn大体框架和工作流程研究
查看>>
vue学习笔记(一)
查看>>
微软专家推荐11个Chrome 插件
查看>>
三天学会HTML5——SVG和Canvas的使用
查看>>
MySql基本操作(二)
查看>>
我的友情链接
查看>>
文件上传时几个Content-type
查看>>
我的友情链接
查看>>
Exchange Server 2013 集成Office Web App
查看>>
字节转换工具,在线字节转换工具
查看>>
实验心得
查看>>
mysql 生成行号
查看>>
Control your Thinkpad T430 fan speed in Ubuntu 12.
查看>>