【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1174

【题目大意】

  选出一些字符串,使得字符串的最长公共前缀*字符串的总个数最大化

【题解】

  字典树裸题,卡内存,需要用链表实现

【代码】

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int S=5000100;
struct Trie{
int tot,cnt[S],ans,head[S],nxt[S],to[S],m;
char c[S];
void insert(){
char C=getchar();
for(int x=0,i=0;C!='\n';i++,C=getchar()){
int y=-1;
for(int e=head[x];e;e=nxt[e])if(c[e]==C){y=to[e];break;}
if(y<0)to[++m]=++tot,c[m]=C,nxt[m]=head[x],head[x]=m,y=tot;
cnt[x=y]++;
ans=max(ans,cnt[x]*(i+1));
}
}
}T;
int n;
int main(){
scanf("%d",&n); getchar();
for(int i=1;i<=n;i++)T.insert();
printf("%d\n",T.ans);
return 0;
}

BZOJ 1174 [Balkan2007]Toponyms(Trie)的更多相关文章

  1. BZOJ 1174: [Balkan2007]Toponyms

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 735  Solved: 102[Submit][Status][Discuss] Descriptio ...

  2. 【python】Leetcode每日一题-前缀树(Trie)

    [python]Leetcode每日一题-前缀树(Trie) [题目描述] Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的 ...

  3. BZOJ 1251 序列终结者(Splay)

    题目大意 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术 ...

  4. LA3942-Remember the Word(Trie)

    题意: 有s个不同的单词,给出一个长字符串把这个字符串分解成若干个单词的连接(可重复使用),有多少种分解方法 分析: dp[i]表示i开始的字符串能分解的方法数 dp[i]=sum(dp[i+len( ...

  5. HDU 1671 Phone List (Trie)

    pid=1671">Phone List Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  6. BZOJ刷题指南(转)

    基础(65) 巨水无比(4):1214.3816:2B题:1000A+B:2462:输出10个1 模拟/枚举/暴力(15):4063傻子模拟:1968小学生暴力:1218前缀和暴力:3856读英文:4 ...

  7. BZOJ K大数查询(分治)(Zjoi2013)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3110 Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b ...

  8. BZOJ 3000: Big Number (数学)

    题目: https://www.lydsy.com/JudgeOnline/problem.php?id=3000 题解: 首先n很大,O(n)跑不过,那么就要用一些高端 而且没听过 的东西——sti ...

  9. BZOJ 1049 数字序列(LIS)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1049 题意:给出一个数列A,要求:(1)修改最少的数字使得数列严格递增:(2)在( ...

随机推荐

  1. spring-boot-全局异常

    Spring Boot默认的异常处理机制 默认情况下,Spring Boot为两种情况提供了不同的响应方式. 一种是浏览器客户端请求一个不存在的页面或服务端处理发生异常时,一般情况下浏览器默认发送的请 ...

  2.  Meltdown论文翻译【转】

    转自:http://www.wowotech.net/basic_subject/meltdown.html#6596 摘要(Abstract) The security of computer sy ...

  3. linux下定时器介绍1

    POSIX Timer 间隔定时器 setitimer 有一些重要的缺点,POSIX Timer 对 setitimer 进行了增强,克服了 setitimer 的诸多问题: 首先,一个进程同一时刻只 ...

  4. Small Private Cloud Deployment Solution

    项目背景 为用户提供可访问的桌面虚拟机,方便软件研发人员日常办公,软件开发,编译等工作.主要操作包括Visor制图.程序开发测试以及使用office软件办公. 目前阶段需要支持100台虚拟机(4VCP ...

  5. 关闭linux退格键和vi发出的嘟嘟声

    以root用户登录,然后请安下面方法进行操作: 在命令行下执行:echo "rmmod pcspkr" >> /etc/rc.d/rc.local

  6. SQL农历转换函数(显示中文格式,加入润月的显示)

    if object_id('fn_getlunar') is not null drop function fn_getlunar go create function dbo.fn_getlunar ...

  7. Python学习笔记:lambda表达式

    lambda表达式:通常是在需要一个函数,但又不想去命名一个函数的时候使用,即匿名函数. 示例如下: add = lambda x,y : x+ y add(1,2) # 结果为3 1.应用在函数式编 ...

  8. Elasticsearch 6.x 入门测试

    首先听一下官方的话: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html 我尝试了使用Java作为Cl ...

  9. NOIP2015&2016普及组解题报告

    NOIP2015普及组题目下载 NOIP2016普及组题目下载 NOIP2015普及组题目: NOIP2018RP++ NOIP2016普及组题目 NOIP2018RP++ T1 金币\((coin. ...

  10. Java第三阶段学习(二、IO流--------递归,字节流Stream)

    一.递归 定义:指方法在方法内调用自己 适用于方法的运算主体不变,但运行的时候,参与运算的方法参数会变化注意:一定要给递归一个出口,否则内存溢出 练习题1:使用递归打印文件夹中所有的文件,包含子目录中 ...