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-每周一 ...
随机推荐
- 【转载】Spring中的applicationContext.xml与SpringMVC的xxx-servlet.xml的区别
一直搞不明白两者的区别. 如果使用了SpringMVC,事实上,bean的配置完全可以在xxx-servlet.xml中进行配置.为什么需要applicationContext.xml?一定必须? 一 ...
- 【POJ】【3308】Paratroopers
网络流/二分图最小点权覆盖 sigh……这题……TLE&RE了好几发 建一个二分图,左边的每个结点代表行,右边的代表列,如果在(i,j)这个位置有一个外星人,那么我们就连一条边 (左 i -& ...
- 【BestCoder】【Round#29】
T1 啊……a^b 与 c^d比较大小,我们可以两边取对数,转化成 log(a^b)=b*log(a) 和d*log(c) 这样就能直接算了……然后稍微搞一下精度什么的就A了=.= //BC #29 ...
- 用windows远程连接linux桌面(使用tightvnc或者tigervnc)
一.安装tightvnc: tightvnc的安装在安装包中有详细的说明(README文件) 首先你要确保linux已经安装jpeg和zlib库, 2.编译 执行如下两个命令: [root@local ...
- 【锋利的JQuery-学习笔记】输入框提示语-隐藏/显示
html <div class="search"> <input type="text" id="inputSearch" ...
- 弱弱的玩下Javascript
前言 好久没有更新博客了,也蛮少捣弄javascript,今儿看到一个题目,关于给你一个面板,你可以随意的在上面画矩形,可以移动和删除任意一个你创建的矩形,心血来潮搞着玩哈,实现起来挺简单的,但这代码 ...
- 趣味Python入门(一):初识Python
[编者按]本文作者是 Abhishek Jaiswal ,擅长 .NET.C#.Python 等多种语言的技术控.本文中,作者通过活泼有趣的口吻向大家介绍了 Python 语言的基础知识,后期多学习历 ...
- Linq to EF 与Linq to Object 使用心得
大家都知道Linq既可以用来查询数据库对象(我这里指的是Entity FrameWork里的Model对象),也可以用来查询内存中的IEnumerable对象. 两者单独查询时都不会出现什么问题,不过 ...
- 暑假学习日记:Splay树
从昨天开始我就想学这个伸展树了,今天花了一个上午2个多小时加下午2个多小时,学习了一下伸展树(Splay树),学习的时候主要是看别人博客啦~发现下面这个博客挺不错的http://zakir.is-pr ...
- ORA-12560: TNS: 协议适配器错误 解决
传统方法: 大多数网站都有记载三个方法解决 但是出现上述错误另一个原因: 刚刚安装的Oracle 里面的账户都是锁定的 需要解锁 见如下的Oracle11g安装过程 http://www.2cto.c ...