bzoj2537: [neerc2007]Language Recognition
Description
Input
Output
#include<cstdio>
#include<algorithm>
typedef unsigned long long u64;
const int N=;
int n,ans=;
int nx[N][],id[N],pv[N],e[N],p=;
char s[];
bool ed[N];
int q[N],qp=,q1[N];
u64 h[N];
bool cmp(int a,int b){return h[a]<h[b];}
u64 hash(int w){
u64 v=;
for(int i=;i<;i++)v=v*+id[nx[w][i]];
if(e[w])v+=;
return v;
}
int main(){
scanf("%d",&n);
while(n--){
scanf("%s",s);
int w=;
for(int i=;s[i];i++){
int c=s[i]-'a';
if(!nx[w][c])nx[w][c]=++p;
pv[nx[w][c]]=w;
w=nx[w][c];
}
e[w]=;
}
for(int i=;i<=p;i++)id[i]=i;
for(int i=;i<=p;i++)if(e[i]){
bool is=;
for(int j=;j<;j++)if(nx[i][j]){is=;break;}
if(is)ed[q[qp++]=i]=;
}
while(qp){
int m=qp;
qp=;
for(int i=;i<m;i++)h[q1[i]=q[i]]=hash(q[i]);
std::sort(q1,q1+m,cmp);
for(int i=,j=;i<m;i=j){
while(h[q1[i]]==h[q1[j]])id[q1[j++]]=q1[i];
if(i+<j)for(int k=i;k<j;k++)if(!ed[pv[q1[k]]])ed[q[qp++]=pv[q1[k]]]=;
}
}
for(int i=;i<=p;i++)if(id[i]==i)++ans;
printf("%d",ans);
return ;
}
bzoj2537: [neerc2007]Language Recognition的更多相关文章
- 如何将 Cortana 与 Windows Phone 8.1 应用集成 ( Voice command - Natural language recognition )
随着 Windows Phone 8.1 GDR1 + Cortana 中文版的发布,相信有很多用户或开发者都在调戏 Windows Phone 的语音私人助理 Cortana 吧,在世界杯的时候我亲 ...
- 论文笔记《Tracking Using Dynamic Programming for Appearance-Based Sign Language Recognition》
一.概述 这是我在做手势识别的时候,在解决手势画面提取的时候看的一篇paper,这里关键是使用了动态规划来作为跟踪算法,效果是可以比拟cameshift和kf的,但在occlusion,gaps或者离 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- hive
Hive Documentation https://cwiki.apache.org/confluence/display/Hive/Home 2016-12-22 14:52:41 ANTLR ...
- java开发常用jar包介绍(转载)
jta.jar 标准JTA API必要 commons-collections.jar 集合类 必要 antlr.jar ANother Tool for Language Recognition ...
- SSH框架整合配置所需JAR包(SSH整合)
转载于:http://www.cnblogs.com/kaige123/p/5719662.html Hibernate Jar: 1.hibernate3.jar,这个是hibernate3.0的核 ...
- J2EE相关总结
Java Commons The Java™ Tutorials: http://docs.oracle.com/javase/tutorial/index.html Java Platform, E ...
- POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)
本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...
- Spring入门学习(一)
SpringMVC基础平台补充(2016.03.03) 如果想要开发SpringMVC,那么前期依次安装好:JDK(jdk-8u74-windows-x64,安装后配置环境变量JAVA_HOME和CL ...
随机推荐
- (基础篇) php中0与空 Null false的区别
<?php $test=0; if($test==''){ echo '<br />在php中,0即为空'; //被输出 } if($test===''){ echo '<br ...
- andorid中Html.fromHtml方法
在android中,有一个容易遗忘的Html.fromhtml方法,意思是可以将比如文本框中的字符串进行HTML格式化,支持的还是很多的, 但要注意的是要在string.xml中用<!--cda ...
- 转 SQL Server中关于的checkpoint使用说明
在SQL Server中有一个非常重要的命令就是CheckPoint,它主要作用是把缓存中的数据写入mdf文件中. 其实在我们进行insert, update, delete时,数据并没有直接写入数据 ...
- 第四部分:python性能技巧
4.1 查询操作为主时,选择字典结构比list结构效率更高 4.2 取list的交集.并集.差集时,可借助set数据结构如listintersection = list(set(lista)& ...
- window IIS6/IIS7取消脚本执行权限,禁止运行脚本木马
网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,可写入的目录如: data.uploads,data目录主要是基本配置文件和缓存数据,uploads则是 ...
- php遇见的错误(一)
1.linux 执行脚本时报的错 Call to a member function on a non-object in 是没有实例化对象 解决方法 new类2.在给一个表增加一个新字段或者改 ...
- Git错误non-fast-forward
Git错误non-fast-forward后的冲突解决 [日期:2012-04-21] 来源:Linux社区 作者:chain2012 [字体:大 中 小] 当要push代码到git时,出现提示 ...
- 关闭V-Ray warning消息框
有时候模型使用低版本VR保存的,再次打开模型时会弹出V-Ray warning提示框 这个问题困扰了我一周时间.... 查了VR官方帮助文档 解决方法如下 setVRaySilentMode() -- ...
- 字符串分割函数 STRTOK & STRTOK_R (转)
1.一个应用实例 网络上一个比较经典的例子是将字符串切分,存入结构体中.如,现有结构体 typedef struct person{ char name[25]; char sex[1 ...
- Unity动画
Unity 并没有自带建模工具. 3D建模工具 maya, 3dmax, blender Skinned Mesh Renderer Mesh Renderer Mesh Filter Modelli ...