bzoj 4628: [BeiJing2016]IP地址

Description

路由表中每一项对应了一个形如 1011101?????????????????????????的规则,会匹配指定的前缀为给定形式的 ip

。 当有多个规则匹配时,前缀最长的生效。同一时刻不会有多个匹配的规则的前缀一样长。每一个时刻,会有一

条规则被加入,或者之前被加入的某条规则会过期。给一系列 ip,问每一个 ip 在一个给定的时间区间内匹配到

的生效规则变了几次?

例如,有一系列事件:

Add 110

Add 11

Del 110

Del 11

Add 110

那么,IP 地址 11011101001001010101011101000010在这五个时刻之后匹配到

的生效规则分别是:

110(第一条),

110(第一条),

11(第二条),

空,

110(第三条)。

其中,在第二个事件后到第五个事件后的这段过程中,一共变了3次。

Input

第一行两个整数 N 和 Q,表示时刻的个数与查询的个数。

接下来 N 行,每行描述一个事件。事件的格式是

Add s 表示新建一个规则,匹配前缀为 s 的所有 ip.

Del s 表示把当前前缀 s 对应的规则删掉(过期)。保证之前有这样的一条规则还没被删。

接下来 Q 行,每行一个 ip 与两个整数 a,b,表示查询 ip 在第 a 个事件(从 1 开始数)

后到第 b 个事件后的这段时间里,这个 ip 匹配到的生效规则变化的次数。 ip 用01字符串来表示。

1 ≤ N, Q ≤ 10^5,串长不超过32

Output

对每个查询,输出所求的变化次数.

Sample Input

5 1

Add 110

Add 11

Del 110

Del 11

Add 110

11011101001001010101011101000010 2 5

Sample Output

3

solution

时间: 2024-08-04 20:33:27

bzoj 4628: [BeiJing2016]IP地址的相关文章

linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)

    运维工程师在做配置的过程中很多时候都需要去获取目标服务器网卡上的IP地址,那究竟用什么方式获取更便捷了,博主今天就带大家使用linux文本三剑客分别获取一下网卡的IP地址,最后我们再来对比一下. 实验环境: 系统:CentOS 7.2 网卡张数:双网卡 linux文本三剑客之grep 获取ifconfig输出中的IP地址 ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\

MySQL怎样存储IP地址

这两天面试,借贷宝面试官有问到你之前的项目是如何存储ip地址的,我的回答是,存储为varchar字符串类型(事实上我之前参与的项目中的确是采用varchar类型来存储的,但现在想想,当时的场景也仅仅是记录用户操作的地址,也没什么太多用途). 然后,面试官又问我,那你如何查找出A类IP地址的内容,这个时候我就懵了,因为我根本不知道IP地址还分类别,只知道基本格式是从0.0.0.0 ~ 255.255.255 所以,面试也是一种知识的学习,只可惜过程太痛苦,年轻的时候多学点总不是坏处,后悔当初在公司

red hat7 系统可以ping通ip地址但是不能ping通域名

在red hat7中ifconfig后出现这样的情况,ens33是物理网卡,与eth0一样只是不同的名字.但是只能ping通ip地址不能ping通域名. 解决方法: 在文件 /etc/resolv.conf文件下更改nameserver的值 加上 nameserver 8.8.8.8  域名解析服务  nameserver 8.8.4.4为备用的 在文件 etc/sysconfig/network-scripts下修改 ifcfg-eth0 或者 ifcfg-ens33文件,设置静态ip地址,

CentOS 7 配置IP地址以及出现的问题排查

当我们新建好一个新的CentOS系统后我们首先需要配置IP 地址,为的就是可以方便远程连接和后续的正常使用!由于CentOS 7更新之后配置和CentOS 6还是有点小区别,让我们开始吧~ 首先进入系统后我们先自动获取一个IP地址: #dhclient 查看获取到的IP地址信息 #ip add  或 #ifconfig 然后我们可以查看一下配置文件 #cat /etc/sysconfig/network-scripts/ifcfg-ens33 当然在这条命令中部分如果不是太方便记(经常练习一下,

取ip地址,最简单粗暴的2种方法

命令:awk -F"[ :]+" 'NR==2 {print$4}' [[email protected] tmp]# ifconfig eth0 eth0     Link encap:Ethernet  HWaddr00:0C:29:8B:B4:9A           inet addr:192.168.56.128 Bcast:192.168.56.255 Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe8b:b

配置IP地址

1.linux如果在一个路由器环境中,则可以使用dhclient命令获取IP地址. dhclient 2.手动配置 打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="static" HWADDR="00:0C:29:2D:E7:1A" IPV6INIT="yes" NM_CONTROLLED="yes"

客户端邮件收发报错Connection from (ip地址) refused

问题现象: 解决办法:登陆邮件服务器,安全--安全设置--屏蔽--动态屏蔽,点击[白名单]按钮,把客户端当前出口ip地址添加进去即可. 小小提示:无论是动态屏蔽还是ip屏蔽,都会出现这个客户端被refused的哦

几个免费IP地址查询API接口

1.IP地址查询接口:http://apis.juhe.cn/ip/ip2addr 要先去https://www.juhe.cn/docs/api/id/1申请APPKEY 2.新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪这个应该说是最不错的.并且返回的数据类型为可以自定义格式(默认为纯文本格式,根据format的参数定义,还可以返回JS.Json格式). 3.新浪多地域测试方法: http

linux下一块网卡设置多个ip地址

无论是在实际的生产坏境中,还是平时的练习中, 一个网卡设置多个ip地址是非常常见的,也是非常有用的. 我们以centos6.8系统为列, 在一块网卡上设置多个ip地址. 1>. 给一块网卡设置多个ip地址这个功能可能会受到NetworkManager服务的影响,首先关闭NetworkManager服务,并且开机自启也关闭. [[email protected] network-scripts]# service NetworkManager stop Stopping NetworkManage