bzoj1819
水题,上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的更多相关文章
- BZOJ1819 [JSOI]Word Query电子字典 Trie
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1819 题意概括 字符串a与字符串b的编辑距离是指:允许对a或b串进行下列“编辑”操作,将a变为b或 ...
- [bzoj1819] [JSOI]Word Query电子字典
正解是trie树...在树上跳来跳去什么的 然而在企鹅qq那题的影响下我写了hash... 添加一个字母到一个串,就相当于另一个串删对应位置上的字母. 改变某个位置上的字母,就相当于两个字符串删掉同一 ...
- bzoj1819 电子词典
Description 人们在英文字典中查找某个单词的时候可能不知道该单词的完整拼法,而只知道该单词的一个错误的近似拼法,这时人们可能陷入困境,为了查找一个单词而浪费大量的时间.带有模糊查询功能的电子 ...
- BZOJ 刷题记录 PART 6
[BZOJ2709]水的二分加验证.可是好像被读入萎到了... [BZOJ3229]强大的算法见此.被机房的一堆大神"推荐".于是被坑了...写了一个下午... [BZOJ3631 ...
随机推荐
- like的性能问题
使用like'%匹配的文字%',无法优化,因为索引起不到作用. 不过like'匹配的文字%',索引起作用.
- LIB库加载方法-引用百度百科
LIB库加载方法,有三种,如下: 1.LIB文件直接加入到工程文件列表中 在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中\"Add Files to Project\ ...
- Linux上安装KDE, Gnome和VNC
安装所需环境:需要至少256m的可用内存(128也可以不过有点卡)CentOS或类似OS(Debian的话改成apt-get应该也可以) 1,安装KDE 1 yum install kdepim 或安 ...
- CI 笔记 datagrid的调用,不支持多页面多次调用js
在导航列表中,调用datagrid时,如果用js加载datagrid时,不知为何,报“404错误”找不到网页, 用datagrid时,用网页的形式调用,则没有问题. ----------------- ...
- Linq XML
写得比较啰嗦,自己记载备用 1 public class XmlFunction 2 { 3 private static XDocument _doc = new ...
- c语言字符数组与字符串的使用详解
转自:http://www.jb51.net/article/37456.htm 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ ...
- (转)应用内存优化之OnLowMemory&OnTrimMemory
1.应用内存onLowMemory& onTrimMemory优化 onLowMemory& onTrimMemory简介:OnLowMemory是Android提供的API,在系统内 ...
- Git 基本使用配置
// 1.配置用户名邮箱:用于记录你个人的用户名称和电子邮件地址,用户名可随意修改,git 用于记录是谁提交了更新,以及更新人的联系方式: $ git config --global user.nam ...
- Dice (III) 概率dp
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> ...
- 百度地图Api 根据两个坐标点计算距离
百度地图Android Sdk的Api里面,没有现成的直接获取两个坐标点之间距离的方法,但是,在jsapi里面,有直接计算距离的方法. class Point: pass def max(a,b): ...