UVA 11488 Hyper Prefix Sets (字典树)
2024-08-31 19:38:57
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2483
给定一个字符串集合S, 定义P(S)为所有字符串的公共前缀长度与S中字符串个数的乘积, 例如P{000, 001, 0011} = 6,
现在给出n个只包含字符01的串(n <= 50000), 从中选出一个子集合S, 使得P(S)最大, 求最大值
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
using namespace std;
#define lowbit(x) (x&(-x))
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)
#define MAX 100000000000000000
#define MOD 1000000007
#define pi acos(-1.0)
#define ei exp(1)
#define PI 3.141592653589793238462
#define ios() ios::sync_with_stdio(false)
#define INF 0x3f3f3f3f
#define mem(a) (memset(a,0,sizeof(a)))
typedef long long ll;
char s[];
int ans,n,t,pos;
struct Trie
{
int next[];
int cnt;
void init()
{
cnt=;
memset(next,,sizeof(next));
}
}trie[];
void init()
{
for(int i=;i<=n*;i++ )
{
trie[i].init();
}
}
void insert(char *s)
{
int x=;
for(int i=;s[i]!='\0';i++)
{
if(trie[x].next[s[i]-'']==)
{
trie[x].next[s[i]-'']=++pos;
trie[pos].init();
}
x=trie[x].next[s[i]-''];
trie[x].cnt++;
ans=max(ans,(i+)*trie[x].cnt);
}
}
int main()
{
scanf("%d",&t);
while(t--)
{ ans=,pos=;
scanf("%d",&n);
init();
for(int i=;i<n;++i)
{
scanf("%s",s);
insert(s);
}
printf("%d\n",ans); }
return ;
}
最新文章
- FreeMarker:怎么使用
- jquery动态改变div宽度和高度
- [NOIP2015] 提高组 洛谷P2679 子串
- 黑客入门之IP地址及常用命令
- VMware ESXI5.0的安装配置 zz
- C# 集合 — Hashtable 线程安全
- HDU 4610 Cards (合数分解,枚举)
- Javascript(JS)中的大括号{}和中括号[]详解
- 批量创建prefab
- Funny Sheep(思维)
- 四轴飞行器1.2.1 RT-Thread 环境搭建
- 前端新人学习笔记-------html/css/js基础知识点
- Oracle在不同的语言环境结果to_date错误的问题
- Java基础---继承、抽象、接口
- 搭建Pypi转发服务
- Matconvnet 的一些记录
- webservice之helloword(web)rs
- Advanced DataStream API Low-latency Event Time Join
- eclipse调优
- 1.Servlet
热门文章
- Visual Studio2008 和2010 执行程序出现的黑框马上消失解决方法
- 什么是 &;quot;署名-非商业性使用-同样方式共享&;quot;
- 关于App程序猿泡沫
- Nrf51822中设置128bit UUID service
- BZOJ1306: [CQOI2009]match循环赛
- BZOJ 3629 约数和定理+搜索
- datatable设置成中文
- CentOS中实现与Ubuntu下apt-get install build-essential功能类似的命令
- LG Gram 2018 z980 白
- 【转】Flash AS3.0 中的自定义事件