对于每一条询问,我们可以通过一个数组维护第一次匹配长度为i时的插入时间来计算在[l,r]中改变了多少遍

由于现在长度已经单调,选择会发生变化当且仅当时间也单调,

于是我们可以通过单调栈计算[1,x]中改变了多少遍

ans=solve(r)-solve(l-1)

对于多个询问,我们可以把询问插入trie树中,实现多个询问共用一个维护数组

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define maxn 1000005
 5 #define maxnd 15000000
 6 struct node{ ll x; int l,r; }A[maxn],Q[maxn];
 7 int n,aa,qq;
 8 int trie[maxnd][2],nd,mark[maxnd],sta[40];
 9 int read(){
10     int tmp=0; char ch=0;
11     while(ch<'0'||ch>'9')ch=getchar();
12     while(ch>='0'&&ch<='9')tmp=tmp*10+ch-'0',ch=getchar();
13     return tmp;
14 }
15 void insert(ll x){
16     int p=0;
17     for(int i=32;i;i--){
18         int t=x>>(i-1)&1;
19         if(!trie[p][t])trie[p][t]=++nd;
20         p=trie[p][t];
21     }
22 }
23 void init(){
24     n=read();
25     char op[3];
26     for(int i=1;i<=n;i++){
27         scanf("%s",op);
28         if(op[0]=='A'){
29             aa++;
30             for(int j=0;j<4;j++)
31                 A[aa].x=(A[aa].x<<8)|read();
32             A[aa].l=read();
33         }
34         else{
35             qq++;
36             for(int j=0;j<4;j++)
37                 Q[qq].x=(Q[qq].x<<8)|read();
38             Q[qq].l=read(),Q[qq].r=read();
39             insert(Q[qq].x);
40         }
41     }
42 }
43 void getmark(int pos){
44     int p=0;
45     for(int i=32;i>32-A[pos].l;i--){
46         int t=A[pos].x>>(i-1)&1;
47         if(!trie[p][t])return;
48         p=trie[p][t];
49     }
50     if(!mark[p])mark[p]=pos;
51 }
52 int getans(ll x,int rng){
53     int p=0,top=0;
54     for(int i=32;i;i--){
55         int t=x>>(i-1)&1;
56         p=trie[p][t];
57         if(mark[p]&&mark[p]<=rng){
58             while(top&&mark[p]<sta[top])top--;
59             sta[++top]=mark[p];
60         }
61     }
62     return top;
63 }
64 void solve(){
65     for(int i=1;i<=aa;i++)
66         getmark(i);
67     for(int i=1;i<=qq;i++){
68         int ans1=getans(Q[i].x,Q[i].l-1);
69         int ans2=getans(Q[i].x,Q[i].r);
70         printf("%d\n",ans2-ans1);
71     }
72 }
73 int main(){
74     init();
75     solve();
76     return 0;
77 }

View Code

转载于:https://www.cnblogs.com/Ngshily/p/5424320.html

[BZOJ4523]路由表相关推荐

  1. r-route 命令 显示/配置ip路由表

    文章目录 前言 语法格式 命令使用 输出含义 使用实例 前言 route命令用于显示和配置IP路由表,在不同节点间的网络通信,想要实现同一局域网之间的通信就需要交换机,不同局域网之间的通信就需要路由器 ...

  2. Linux命令之route - 显示和操作IP路由表

    转自:  http://codingstandards.iteye.com/blog/1125312 用途说明 route命令用于显示和操作IP路由表(show / manipulate the IP ...

  3. 路由器、路由与路由表

    2019独角兽企业重金招聘Python工程师标准>>> 路由器.路由与路由表 路由器就是一台网络设备,它配备多个网络接口卡(NIC),能利用它的网络知识正确转发入口流量. 决定一个入 ...

  4. linux路由介绍,Linux的路由表详细介绍

    Linux的路由表详细介绍 一 在Linux下执行route命令[root@localhost backup]# route -nKernel IP routing tableDestination ...

  5. Linux下路由表调试工具traceroute

    在做静态路由表或者路由表分配时,比较直接的调试工具是traceroute,可以跟踪访问一个IP所到达的路由层级,从而知道经过哪些链路. 参考: http://man.linuxde.net/trace ...

  6. linux如何添加默认路由表_Linux-如何添加路由表

    linux下静态路由修改命令 方法一: 添加路由 route add -net 192.168.0.0/24 gw 192.168.0.1 route add -host 192.168.1.1 de ...

  7. 华为路由器ospf路由表解读_华为动态路由OSPF实例详解之多区域配置-华为路由器设置...

    在企业的大型网络中,因为设备众多,静态路由已经很难满足路由时常变化的需求,动态路由已经是必然选择,其中,OSPF又是最简单适合的动态路由协议,上一节已经介绍了单区域的OSPF配置,接着简单介绍下多区域 ...

  8. 修改路由表来使路由分流

    作为IT人员.google搜索的精确性众所周知.所以,VPN自然成为众多大牛的必备利器.使用VPN的弊端,国内网站也走VPN网络.速度必然慢不少,所以.路由分流,访问国外网站使用VPN.国内还是走国内 ...

  9. Linux环境下路由表配置一

    路由表配置网关及端口   网络地址:分析目标地址 接口:数据有可能从路由器的哪个出口出来,哪个就是接口 网关:目标网络与发数据的设备不在一个网段内,下一个路由器邻近主配置路由器的接口ip就是网关,线路 ...

  10. 电信、联通、移动、其它路由表 2011-06-19更新

    电信.联通.移动.其它路由表 2011-06-19更新 转载于:https://blog.51cto.com/481872/591803

最新文章

  1. 给 Easyui Datagrid 扩展方法
  2. 移动APP接口遇到的一些小问题
  3. 连连看(HDU-1175)
  4. Linux安装中文字体_宋体
  5. java map 实例_java中map集合嵌套形式简单示例
  6. asp代码在dwearwear转换成html格式怎么转,为前端而生的编辑器Brackets及配置推荐
  7. Internet 打印提示“打印机安装失败、打印机名称无效”的解决
  8. python语言的主网址-python调用浏览器,打开一个网址
  9. HTML中更改hr宽度高度颜色
  10. 【转】Android 基于Socket的聊天室
  11. linux软件中心无法安装软件,linux中软件的安装
  12. 项目答辩PPT(一)
  13. mysql 断开的管道_java.net.SocketException: 断开的管道 (Write failed) 错误,数据库隔一段时间就断开的问题...
  14. java 找不到符号变量_java 编程中出现的 找不到符号 的问题
  15. about cisco DNA
  16. (MDY)2021秋季软件工程 alpha冲刺完善
  17. 如何拿到互联网巨头的Offer
  18. 你想要的宏基因组-微生物组知识全在这(2020.5)
  19. 教你一眼认出英语单词的意思
  20. 惜我者,我惜之; 冷我者,我弃之

热门文章

  1. tm1639c语言程序,51单片机各种汇编延时子程序整理汇总
  2. Caffe学习:使用pycaffe绘制loss、accuracy曲线
  3. web自动化测试第6步:模拟鼠标操作(ActionChains)
  4. 2021-08-15 reponse文件下载路径
  5. linux cpu驱动程序,Linux kernel-CPU 调频
  6. 计算机系统基础栈,计算机系统基础 (一): 程序的表示, 转换与链接 (第七周小测验)...
  7. mysql一般要配置的几个小节及选项是_MySQL - 必知必会(下)
  8. 怎么把python从c盘移到d盘_如何转移Pycharm的设置或者缓存到其他盘
  9. era5数据内容说明_接口测试:A04_HttpRunner通用_02_提取数据_01_extract关键字
  10. FISCO BCOS同步模块的优化策略