博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 11488 超级前缀集合(Trie的应用)
阅读量:4321 次
发布时间:2019-06-06

本文共 650 字,大约阅读时间需要 2 分钟。

题意:

给定一个字符串集合S,定义P(s)为所有字符串的公共前缀长度与S中字符串个数的乘积。比如P( {000, 001, 0011} ) = 6。给n个01串,从中选择一个集合S,使得P(S)最大。

 

思路:

建立字典树,边插入边统计答案即可。

用两个变量分别记录前缀数量和前缀长度,每次插入时动态更新两者乘积。

1 #include
2 #include
3 #include
4 using namespace std; 5 const int maxn = 50000*200+5; 6 7 int num; 8 int ans; 9 10 struct Trie11 {12 int son[2];13 int cnt;14 int id;15 }t[maxn];16 17 void init(int x)18 {19 t[x].cnt = t[x].id = 0;20 memset(t[x].son,0,sizeof(t[x].son));21 }22 23 void insert(char* s)24 {25 int u = 0, n = strlen(s);26 for(int i=0;i

 

转载于:https://www.cnblogs.com/zyb993963526/p/7894576.html

你可能感兴趣的文章
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
Maven配置
查看>>
HttpServletRequest /HttpServletResponse
查看>>
SAM4E单片机之旅——24、使用DSP库求向量数量积
查看>>
从远程库克隆库
查看>>
codeforces Unusual Product
查看>>
hdu4348 - To the moon 可持久化线段树 区间修改 离线处理
查看>>
正则表达式的搜索和替换
查看>>
个人项目:WC
查看>>
地鼠的困境SSL1333 最大匹配
查看>>
flume+elasticsearch+kibana遇到的坑
查看>>
【MM系列】在SAP里查看数据的方法
查看>>
C#——winform
查看>>
CSS3 transform制作的漂亮的滚动式导航
查看>>
《小强升职记——时间管理故事书》读书笔记
查看>>
Alpha 冲刺(3/10)
查看>>
Kaldi中的Chain模型
查看>>