HDU-5790 Tire树+主席树

Python 3.8+ 函数参数实战:5种参数类型组合与顺序规则详解 本文详细解析Python 3.8+函数参数的5种类型组合与顺序规则,包括位置参数、默认参数、可变参数、命名关键字参数和关键字参数。通过实战案例和最佳实践,帮助开发者掌握参数传递的高级技巧,提升代码的健壮性和可读性。特别介绍了Python 3.8引入的限定位置参数(/)和限定关键字参数(*)语法,为函数设计提供更精细的控制。 阅读详情

Prefix

Time Limit: 2000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 474    Accepted Submission(s): 150


Problem Description
Alice gets N strings. Now she has Q questions to ask you. For each question, she wanna know how many different prefix strings between Lth and Rth strings. It's so easy right? So solve it!
 

Input
The input contains multiple test cases.

For each test case, the first line contains one integer  N(1≤N≤100000) . Then next N lines contain N strings and the total length of N strings is between 1 and 100000. The next line contains one integer  Q(1≤Q≤100000) . We define a specail integer Z=0. For each query, you get two integer L, R(0=<L,R<N). Then the query interval [L,R] is [min((Z+L)%N,(Z+R)%N)+1,max((Z+L)%N,(Z+R)%N)+1]. And Z change to the answer of this query.
 

Output
For each question, output the answer.
 

Sample Input
  
3 abc aba baa 3 0 2 0 1 1 1
 

Sample Output
  
7 6 3
 

Author
ZSTU
 

Source

题目链接:

题目大意:
给出n个字符串,每次询问第L个字符串到第R个字符串中不同前缀的个数,强制在线。

解题思路:
之间有做过用Trie树哈希的题目,这个题其实就是用Trie给每个前缀一个值,这样就将一个字符串转化成了几个不同的数,再查询区间内不同数的个数就可以了,区间内不同数的个数用主席树来做。
比赛时用java写数组开到4e6就MLE了,赛后改了好几天过不了,只好向C++妥协。

AC代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = (int)4e6+10;
const int M = (int)1e5+10;

char s[M];
int n,sz,ct,pp,ans,m,a,b,L,R;
int aa[M],mm[M],last[M],lpos[M],rpos[M];
int rt[M],ll[N],rr[N],data[N],ch[M][26];

void insert()
{
    int u=0,a,len=strlen(s);
    for(int i=0;i<len;i++)
    {
        a=s[i]-'a';
        if(ch[u][a]==0)
        {
            ch[u][a]=++sz;
            for(int j=0;j<26;j++)
                ch[sz][j]=0;
        }
        u=ch[u][a];
        aa[++ct]=u;
    }
}
void build(int l,int r,int k)
{
    data[k]=0;
    if(l==r) return;
    int mid=(l+r)/2;
    ll[k]=++pp;build(l,mid,ll[k]);
    rr[k]=++pp;build(mid+1,r,rr[k]);
}
void updata(int a,int b,int k,int l,int r,int x)
{
    data[a]=data[b]+x;
    if(l==r) return;
    int mid=(l+r)/2;
    if(k<=mid)
    {
        rr[a]=rr[b];ll[a]=++pp;
        updata(ll[a],ll[b],k,l,mid,x);
    }
    else
    {
        ll[a]=ll[b];rr[a]=++pp;
        updata(rr[a],rr[b],k,mid+1,r,x);
    }
}
int query(int a,int b,int k,int l,int r)
{
    if(a<=l&&r<=b) return data[k];
    int mid=(l+r)/2,res=0;
    if(mid>=a) res+=query(a,b,ll[k],l,mid);
    if(mid+1<=b) res+=query(a,b,rr[k],mid+1,r);
    return res;
}

int main()
{
    while(~scanf("%d",&n))
    {
        for(int i=0;i<26;i++)
            ch[0][i]=0;
        sz=ct=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%s",s);
            lpos[i]=ct+1;
            insert();
            rpos[i]=ct;
        }
        for(int i=1;i<=sz;i++) mm[i]=N;
        for(int i=ct;i>0;i--)
        {
            last[i]=mm[aa[i]];
            mm[aa[i]]=i;
        }
        pp=0;
        rt[ct+1]=++pp;build(1,ct,rt[ct+1]);
        for(int i=ct;i>0;i--)
        {
            rt[i]=++pp;
            updata(rt[i],rt[i+1],i,1,ct,1);
            if(last[i]<N)
            {
                a=++pp;
                updata(a,rt[i],last[i],1,ct,-1);
                rt[i]=a;
            }
        }
        scanf("%d",&m);ans=0;
        while(m--)
        {
            scanf("%d%d",&a,&b);
            L=min((a+ans)%n,(b+ans)%n)+1;
            R=max((a+ans)%n,(b+ans)%n)+1;
            ans=query(lpos[L],rpos[R],rt[lpos[L]],1,ct);
            printf("%d\n",ans);
        }
    }
}


政府科技管理者如何提升科技成果转化项目进场交易的备案效率?.docx 政府科技管理者如何提升科技成果转化项目进场交易的备案效率? 立即下载

相关推荐

山区道路边坡落石隐患检测数据集VOC+YOLO格式241张1类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

Hdu 5790 Prefix(每次查询问你第L个字符串和第R个字符串之间的公共前缀有多少个)

传送门:Hdu 5790 Prefix题意:给你n个字符串(1≤N≤100000),字符串的总长度小于等于100000 接下来有q个查询(1<=q<=100000),每次查询问你第L个字符串和第R个字符串之间的公共前缀有多少个思路:将每个前缀都表示成在字典树上的值,然后插入到主席树中->主席树区间内有多少个不同的值#include<bits/stdc++.h> using namespace st

_zidaoziyan的博客 815

高空作业栏杆检测数据集VOC+YOLO格式230张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

2016hdu多校赛第5场(hdu5790) 主席树(Persistent Segment Tree)

题意给你N个字符串,问你第l个到第r个字符串中有多少个不同前缀。强制在线做,所以没法用树状数组来做。主席树也就是Persistent Segment Tree ,可持久化线段树。一般来讲线段树更新之后不会使用历史版本的线段树的信息,但是有些问题里面需要。可持久化线段树的做法是,新建一logn个节点,相当于一条链,线段树原本更新时是将这条链上的值更新,而主席树是新建一条链,其他部分连接原始的线段树,这

czw's blog 1139

ti-cgt-c2000-22.6.0.LTS-windows-x64-installer

ti-cgt-c2000-22.6.0.LTS-windows-x64-installer

光伏板太阳能板尘土灰尘脏污检测数据集VOC+YOLO格式1006张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

hdu 5790 prefix 主席树

这道题目其实和 spoj上的d-query 差不多  http://blog.youkuaiyun.com/mtrix/article/details/52335617, 本质都是统计连续区间不同数个数,本来有 离线+树状数组 和在线主席树 两种做法, 这里强制在线那就主席树,对每个前缀要判断它有没有出现过可以用hash也可以字典树。 #include #include #include

varinic 的博客 952

12V INPUT电源电路设计中的关键保护机制解析【精简】

本文深入解析了12V INPUT电源电路设计中不可或缺的关键保护机制。针对常见的电源反接、过压及浪涌等风险,文章详细拆解了PMOS防反接、TVS过压钳位、OVP芯片关断以及快速断电电路等核心防护方案的设计原理、选型要点与实战优化技巧,旨在帮助工程师构建可靠、经济的电源前端防御体系。

weixin_29158047的博客 228

hdu 5790 Prefix (字典树 + 主席树)

Prefix Time Limit: 2000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 519    Accepted Submission(s): 157 Problem Description Alice gets N strings.

ilsswfr 425

告别外置天线!手把手教你用HFSS仿真设计一个20x40mm的433MHz PCB蛇形天线

本文详细介绍了如何使用HFSS仿真工具设计一个20x40mm的433MHz PCB蛇形天线,解决物联网设备小型化中的天线集成难题。通过对比外置天线与PCB天线的性能差异,深入解析蛇形天线的电磁学原理,并提供从建模到优化的全流程实战指南,帮助工程师实现高效、低成本的微型化天线设计。

weixin_30606461的博客 433

从零开始安装pytorch(包含GPU和CPU版本的安装)

Pytorch是。

qiaoxinyu1989的博客 8万+

hdu 5790 Prefix(字典树+主席树)

Problem Description Alice gets N strings. Now she has Q questions to ask you. For each question, she wanna know how many different prefix strings between Lth and Rth strings. It's so easy right? So

ZAQ的博客 1143

手把手教你用WKT文件在Petrel中创建自定义坐标系统(附CGCS2000转换模板)

本文详细介绍了如何在Petrel软件中利用WKT文件创建自定义坐标系统,并重点提供了CGCS2000坐标系的完整转换模板与实战步骤。通过解析坐标系统的三大支柱(大地坐标系、投影坐标系、基准转换)和WKT文件结构,指导用户从零开始构建适用于本土化项目的坐标系统,确保地质建模与空间数据处理的精度与一致性。

gpt4scribbler的博客 280

hdu5790 Prefix(2016多校第五场1009)trie+主席树

如果不强制在线可以莫队乱搞,但是现在我们就想怎么把trie可持久化,其实我们只要记录一个点的存在范围即可,即从小到大建立主席树,对于每个点我们在主席树里面记录最右边的位置,也就是对于r记录的是最大的l,那就好办了,只求求和即可。 #include #include #include #include #include #include using namespace std; const int

huantwofat 569

华为EC6108V9E刷机实战:从U盘准备到开机优化的完整避坑指南

本文提供华为悦盒EC6108V9E刷机与优化的完整实战指南。针对搭载RK3228芯片和安卓4.4.4系统的设备,从型号确认、固件选择、U盘准备,到详细刷机步骤、常见故障排除,以及刷机后的深度性能优化,手把手帮助用户规避风险,让旧盒子焕发新生,成为流畅的全能媒体中心。

weixin_29324401的博客 1196

CONN工具箱分析fmri数据笔记1

前言一、安装二、预处理三、去噪 前言 CONN:functional connectivity toolbox,是基于MATLAB和SPM的一个对功能磁共振数据进行分析的一个工具箱。可以进行以下分析: Seed-based correlations (SBC), ROI-to-ROI correlations, graph analyses, Independent component analyses(group-ICA), Masked (ICA) Amplitude of Low-Frequency.

weixin_52073820的博客 6587

hdu 5790 prefix 主席树在线维护区间不同数的个数

题意:给n个串,m次询问,每次给你L,R 要统计第L~R个串中有多少个不同的前缀。n m 题解:由于是前缀,可以用trie树处理,剩下的问题就是在线访问区间内有多少个不同的数了。 我们可以记录trie上每个节点上次出现的位置。对于每个根节点i我们可以记录 前缀上次出现的位置 #include using namespace std; #define maxn 110000 int a[ma

WJSZMRX 561

Qt入门教程【高级控件篇】QModelIndex索引

QModelIndex索引

小鱼酱的博客 4466

HDU - 5790 Prefix (hash || 字典树)+ 主席树

HDU - 5790 前缀总和为o(n)级别的, 然后把前缀hash一下变成求区间本质不同数字的个数。 或者不用hash丢到字典树上去就好了。 #pragma GCC optimize(2) #pragma GCC optimize(3) #include<bits/stdc++.h> #define LL long long #define LD long...

weixin_30266885的博客 173

【已解决】飞牛nas(fnOS)异常断电导致硬盘未挂载(无法挂载),系统内部错误修复、救回数据全流程!(含更新系统后外接 NTFS 格式硬盘丢失的修复方法)

fnOS 飞牛NAS遭遇非正常断电后,存储空间显示「未挂载」或更新系统后外接 NTFS 格式硬盘丢失,点击挂载提示「系统内部错误」!💥 博主已经完美恢复,本文记录了相关的解决方案,帮您恢复或最大程度保住重要数据🎉

XiaoqiangClub的博客 2257

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

2016多校训练Contest5: 1010 Prefix hdu5790

Problem Description Alice gets N strings. Now she has Q questions to ask you. For each question, she wanna know how many different prefix strings between Lth and Rth strings. It's so easy right? So

lqybzx的专栏 511

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU 5790 Prefix(字典树、主席树)

前置技能 主席树 (模仿kuangbin,不用递归用while) 题目 spoj3290 传送门君给一串数列,有q个(1e5的数量级)询问,求i到j间的不同数字的个数 题意N个串,Q个询问。询问第[L,R]的串里面有多少个不同的前缀1<=N<=100000 ,Q<=1e5,串的总长度<=1e5 思路主席树 + Trie每次插入一个串s[i],相当于新建一棵线段树T[i]。(主席树记录历史

yuki4503 561

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HDU5790-Prefix

Prefix                                                                       Time Limit: 2000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)                                    

wang_128的博客 381

hdu 5790 Prefix (主席树维护区间内不同数的个数)

  Prefix Time Limit: 2000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1103    Accepted Submission(s): 326   Problem Description Alice gets N strings. No...

yjt9299的博客 445

hdu5790 Prefix(Trie树+主席树)

Problem Description Alice gets N strings. Now she has Q questions to ask you. For each question, she wanna know how many different prefix strings between Lth and Rth strings. It's ...

weixin_30827565的博客 137
上一篇: HDU-5801 可持久化Trie树
下一篇: HDU-5371 Manacher+线段树维护
AC_Machine
博客等级 码龄11年 1粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值