博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安大校赛,“聪明的输入法”,字典树+树上状态记录
阅读量:7289 次
发布时间:2019-06-30

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

题意:每次询问:输出当前自库中以之为前缀的字符串频率最大的(相等时字典序最小)的字符串。此题开始就跪,字典树不是问题,关键是解决每次输出就是把这个串在字典树跑了一遍之后(停在某节点node),输出以node为根节点的子树中的权值最大的“终止节点”,这个问题,开始走w[u]最大的,发现不行啊(反例很多),后来发现,给每个结点加一个状态,记录以它为根的子树中,权最大的串,(当然还有权值),,每插入一个串后,w[u]更新(u为终止结点),跟新每个结点的属性即可。#include
#include
#include
#include
#include
#include
using namespace std;int tree[310000][27]; //字典树struct node //结点属性{ int maxchild; string cs;};node nodes[310000];int w[310100]; int numv=0; //点数int n;void insert(string s) //插入s{ queue
q; //再走一遍更新之用。 int u=0; int len=s.size(); for(int i=0;i
s) nodes[cur].cs=s; } }}string find(string s) //查找{ int u=0; int len=s.size(); for(int i=0;i

转载于:https://www.cnblogs.com/yezekun/p/3925735.html

你可能感兴趣的文章
802.3标准
查看>>
java爬虫笔记
查看>>
JSP导入EXCEL样式
查看>>
2.Hadoop集群安装进阶
查看>>
java研发工作组环境架设
查看>>
代码片收集
查看>>
网站备案与备案注销
查看>>
书单丨打开投资理财之路,从这25本书开始
查看>>
Less 创建css3动画@keyframes函数
查看>>
.NET Framework 4 与 .NET Framework 4 Client Profile的区别与联系
查看>>
Que pensez-vous de air jordan pas cher
查看>>
SQL Server 2008创建定期自动备份任务(转)
查看>>
SimpleDateFormat
查看>>
epoll_wait会被系统中断唤醒
查看>>
Java设计模式-代理模式
查看>>
Android--sharepreference总结
查看>>
在博客园已经一年多时间了,今天开通博客了!
查看>>
给定矩阵行数和矩阵列数,顺时针打印矩阵(从0开始)
查看>>
个人阅读作业week7
查看>>
Java数据类型(2)------自动封装拆箱
查看>>