水题,上trie,然后穷举每一位的时候判定一下三种编辑

 var son:array[..*,..] of longint;
v:array[..*] of longint;
d:array[..] of boolean;
s:string;
t,i,l,n,m:longint; procedure add(w:longint);
var p,i,y:longint;
begin
p:=;
for i:= to length(s) do
begin
y:=ord(s[i])-;
if son[p,y]= then
begin
inc(t);
son[p,y]:=t;
end;
p:=son[p,y];
end;
v[p]:=w;
end; function find(p,x:longint):longint;
var i,y:longint;
begin
if p= then exit();
for i:=x to l do
begin
y:=ord(s[i])-;
if son[p,y]= then exit()
else p:=son[p,y];
end;
if (v[p]>) and not d[v[p]] then
begin
d[v[p]]:=true;
exit()
end
else exit();
end; function ask:longint;
var p,i,y,j:longint;
begin
p:=;
ask:=;
for i:= to l do
begin
for j:= to do
ask:=ask+find(son[p,j],i)+find(p,i+)+find(son[p,j],i+);
// 在i前一位插入 删除 修改
y:=ord(s[i])-;
p:=son[p,y];
if p= then exit;
end;
for i:= to do
ask:=ask+find(son[p,i],l+); //在最后一位插入
end; begin
readln(n,m);
t:=;
for i:= to n do
begin
readln(s);
add(i);
end;
for i:= to m do
begin
fillchar(d,sizeof(d),false);
readln(s);
l:=length(s);
if find(,)> then writeln(-)
else writeln(ask);
end;
end.

bzoj1819的更多相关文章

  1. BZOJ1819 [JSOI]Word Query电子字典 Trie

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1819 题意概括 字符串a与字符串b的编辑距离是指:允许对a或b串进行下列“编辑”操作,将a变为b或 ...

  2. [bzoj1819] [JSOI]Word Query电子字典

    正解是trie树...在树上跳来跳去什么的 然而在企鹅qq那题的影响下我写了hash... 添加一个字母到一个串,就相当于另一个串删对应位置上的字母. 改变某个位置上的字母,就相当于两个字符串删掉同一 ...

  3. bzoj1819 电子词典

    Description 人们在英文字典中查找某个单词的时候可能不知道该单词的完整拼法,而只知道该单词的一个错误的近似拼法,这时人们可能陷入困境,为了查找一个单词而浪费大量的时间.带有模糊查询功能的电子 ...

  4. BZOJ 刷题记录 PART 6

    [BZOJ2709]水的二分加验证.可是好像被读入萎到了... [BZOJ3229]强大的算法见此.被机房的一堆大神"推荐".于是被坑了...写了一个下午... [BZOJ3631 ...

随机推荐

  1. SqlSugar常用增删改操作

    一.添加数据 特别说明: 1.特别说明:对于自增长列的表插入数据后,当前自增长列的字段,仍旧为0,但可以通过Insert方法的返回值来获取 SqlSugarClient db = SugarConte ...

  2. [上传下载] C#FileUp文件上传类 (转载)

    点击下载 FileUp.zip 主要功能如下 .把上传的文件转换为字节数组 .流转化为字节数组 .上传文件根据FileUpload控件上传 .把Byte流上传到指定目录并保存为文件 看下面代码吧 // ...

  3. Local IIS 7.0 - CS0016: Could not write to output file / Microsoft.Net > Framework > v4.0.30319 > Temporary ASP.NET Files

    This week I went nuts over my local IIS. I have never swore to a machine that much in my whole life. ...

  4. JS获取页面上所有input

    for (var i = 0; i < document.getElementsByTagName("input").length; i++) { if (document. ...

  5. 【转】怎样创建一个Xcode插件(Part 1)

      原文:How To Create an Xcode Plugin: Part 1/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的 ...

  6. 通过html5的range属性动态改变图片的大小

    range属性已经是很成熟的属性了,我们可以使用这个属性进行动态调整图片的宽度,其中原理在于通过不断获取range的值,并赋予给所需要的图片,进而达到动态改变图片的效果.下面贴出具体的代码,主要参照了 ...

  7. struts2 测试错题解析

    解析:$.parseJSON()方法是将字符串转换成Json类型数据,$.getJSON()方法是获取JSON数据,两者不用联合使用. 解析: A:ActionContext接口没有getReques ...

  8. 比较ArrayList和LinkedList

    比较一:添加内容 涉及方法:add public void add_test(){ List<Person> addlist = new ArrayList<Person>() ...

  9. COM简单应用示例

    使用com技术开发模式进行的示例. com技术关键部分源码:主要将所有接口都写入到这个文件中 testinterface.h #ifndef TESTINTERFACE_H #define TESTI ...

  10. 通过EL表达式,后台数据传到前台,引号及后面的数据被截断的问题:

    问题描述: 通过EL表达式,后台数据传到前台,引号及后面的数据被截断的问题: 如: 前端页面: html: 问题解决: 1.一个简单的办法,把 input 写成这样: <input type=& ...