BZOJ3806: Neerc2011 Dictionary Size
题解:
这题搞得我真是酸(dan)爽(teng)
原来一直不会,一定会用到什么神奇的东西。因为重复的不知道如何计算。
今天中午睡起来忽然想到好像可以在正trie上故意走无出边,因为这样就保证了这次统计的所有字符串在它的孩子都不会再次被统计到。
然后感觉这题就解了。
然后和别人的程序对拍发现居然一直少计算了什么!去多了?
然后发现没有算上trie上的节点,前面只考虑了在trie后面加字符串。。。
然后发现好像正反都得特判,然后发现又有重复的!!!这怎么搞!!!
感觉AC无望便去颓了两集火影。。。
看完了乱搞了一下居然就A了。。。我真的是乱搞的T_T现在还不知道为什么能A。。。
int n,m,tot,a[maxn][],s[][];
char st[][];
bool b[];
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
n=read();
for1(k,n)
{
scanf("%s",st[k]);m=strlen(st[k]);
int now=;
for0(i,m-)
{
int j=st[k][i]-'a';
if(!a[now][j])a[now][j]=++tot,s[][j]--;
now=a[now][j];
}
b[(int)(st[k][m-]-'a')]=;
}
for0(i,)s[][i]+=tot;
ll ans=;
for0(i,tot)for0(j,)if(a[i][j]&&b[j])ans++;
memset(b,,sizeof(b));
memset(a,,sizeof(a));tot=;
for1(k,n)
{
int now=;m=strlen(st[k]);
for3(i,m-,)
{
int j=st[k][i]-'a';
if(!a[now][j])a[now][j]=++tot,s[][j]++;
now=a[now][j];
}
b[(int)(st[k][]-'a')]=;
}
for1(i,tot)for0(j,)if(a[i][j]&&b[j])ans++;
memset(b,,sizeof(b));
for1(i,n)if(strlen(st[i])==)b[(int)(st[i][]-'a')]=;
for0(i,)ans+=b[i];
for0(i,)ans+=(ll)s[][i]*s[][i];
cout<<ans<<endl;
return ;
}
BZOJ3806: Neerc2011 Dictionary Size的更多相关文章
- uva 1519 - Dictionary Size(字典树)
题目链接:uva 1519 - Dictionary Size 题目大意:给出n个字符串组成的字典.如今要加入新的单词,从已有单词中选出非空前缀和非空后缀,组成新单词. 问说能组成多少个单词. 解题思 ...
- Dictionary Size
uvaLive5913:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&pag ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- Python dictionary implementation
Python dictionary implementation http://www.laurentluce.com/posts/python-dictionary-implementation/ ...
- javascript字典数据结构Dictionary实现
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- JavaScript 字典(Dictionary)
TypeScript方式实现源码 // set(key,value):向字典中添加新元素. // remove(key):通过使用键值来从字典中移除键值对应的数据值. // has(key ...
- 你真的了解字典(Dictionary)吗?
从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点. 为了便于描述,我把上面的那条线路称为线路1,下面的称为线路2. 思路 ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
- 【算法】272-每周一练 之 数据结构与算法(Dictionary 和 HashTable)
这是第五周的练习题,上周忘记发啦,这周是复习 Dictionary 和 HashTable. 下面是之前分享的链接: [算法]200-每周一练 之 数据结构与算法(Stack) [算法]213-每周一 ...
随机推荐
- PHP之implode与explode函数讲解
implode (PHP 4, PHP 5) implode — 将一个一维数组的值转化为字符串 说明¶ string implode ( string $glue , array $pieces ) ...
- LA 4329
第一次敲树状数组 因为一个小错误 wa了 n 多遍 终于ac 太不容易了 /*********************************************************** ...
- mysql 误删除ibdata1之后如何恢复
mysql 误删除ibdata1之后如何恢复 如果误删除了在线服务器中mysql innodb相关的数据文件ibdata1以及日志文件 ib_logfile*,应该怎样恢复呢? 这时候应该一身冷汗了吧 ...
- Boost简介
原文链接: 吴豆豆http://www.cnblogs.com/gdutbean/archive/2012/03/30/2425201.html Boost库 Boost库是为C++语言标准库提供扩 ...
- [转] 浅析HTTP协议
浅析HTTP协议 来源:http://www.cnblogs.com/gpcuster/archive/2009/05/25/1488749.html HTTP协议是什么? 简单来说,就是一个基于应用 ...
- POJ3080Blue Jeans
http://poj.org/problem?id=3080 题意 : 给你几个DNA序列,让你找他们的共同的最长的子串,若是子串长度小于3,就输出no significant commonaliti ...
- Test Markdown Editor
Last night, I just saw a cute blogger's homepage. Then I want to write something. But anyway, I use ...
- Happy Number
https://leetcode.com/problems/happy-number/ Write an algorithm to determine if a number is "hap ...
- Android 虚拟机安装SD卡
在cmd命令行下,进入platform-tools目录下. 1.创建sdcard mksdcard -l mycard 256M E:\android\myCards\mysdcard.img ...
- PSYoungGen /PSOldGen/PSPermGen区别
原文地址:http://bbs.csdn.net/topics/210064791 谁能解译一下PSYoungGen /PSOldGen/PSPermGen区别及出现的问题? 看来没有收集到答案,查看 ...