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 ...
随机推荐
- 还原或删除sql server 2008数据库时,经常烩出现: “因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案
还原或删除sql server 2008数据库时,经常烩出现: “因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案如下 关键SQL语句: ALTER DATABASE [dateba ...
- java-字符串学习总结
Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类. String 类相关基础认知: 1.String类是final的,不可被继承.public fin ...
- OpenXML: Asp.net利用OpenXML 导出Excel.
http://www.cnblogs.com/skyfei/archive/0001/01/01/Openxml.html
- 牛皮市和猴市的好工具和指标:BOLL
(转贴)布林线BOLL用法 布林线是股市中经常用到的技术指标之一,它反映了股价的波动状况.山版软件指标图中的布林线由三条组成,上边的白线(up)是阻力线,下边的黄线(down)是支撑线,中间的粉红线( ...
- 使用java的Calendar对象获得当前日期的上几个度开始、结束时间
思路: 先获得当前季度的开始和结束日期,在当前日期的基础上往前推3个月即上个季度的开始和结束日期 /** * @param flag true:开始日期:false:结束日期 * @return */ ...
- (四)值栈与OGNL
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:值栈简介 值栈是对应每个请求对象的一套内存数据的封装,Struts2 会 ...
- Mac OS X 好用的软件包管理工具 Homebrew
github地址:https://github.com/Homebrew/homebrew 安装方法:http://brew.sh/
- php 之 json格式
/*JSON语法数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组 JSON 数据的书写格式是:名称/值对名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值;如"myw ...
- 配置并学习微信JS-SDK(2)—图片接口
测试地址:http://www.qq210.com/shoutu/android 检查图像接口 选择本地或拍照的图片 上传选择的图片 预览上传的图片 //1.检查图像接口 document.query ...
- adodb配置与使用
=========================================php100:80:ADODB PHP数据库万能引擎类 ADODB PHP数据库介绍与特点 ADODB 是一种兼容的各 ...