大傻逼trie树,更傻逼的是我这都没独立想出来,以后要少看题解,多多思考

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
int m, cnt, s[20000005][2], now, orz[35], tag[20000005], faq;
char ss[15];
struct Node{
int idx, dis;
}nd[35];
void rn(int &x){
char ch=getchar();
x = 0;
while(ch<'0' || ch>'9') ch = getchar();
while(ch>='0' && ch<='9'){
x = x * 10 + ch - '0';
ch = getchar();
}
}
void insert(){
int uu, uv, uw, ux, uy;
rn(uu); rn(uv); rn(uw); rn(ux); rn(uy);
now++;
for(int i=7; i>=0; i--)
orz[24+i] = (uu>>i)&1;
for(int i=7; i>=0; i--)
orz[16+i] = (uv>>i)&1;
for(int i=7; i>=0; i--)
orz[8+i] = (uw>>i)&1;
for(int i=7; i>=0; i--)
orz[i] = (ux>>i)&1;
int u=0;
for(int i=31; 31-i+1<=uy; i--){
if(!s[u][orz[i]]) s[u][orz[i]] = ++cnt;
u = s[u][orz[i]];
}
tag[u] = now;
}
bool cmp(Node x, Node y){
return x.idx<y.idx;
}
int query(){
int uu, uv, uw, ux, uy, uz;
rn(uu); rn(uv); rn(uw); rn(ux); rn(uy); rn(uz);
for(int i=7; i>=0; i--)
orz[24+i] = (uu>>i)&1;
for(int i=7; i>=0; i--)
orz[16+i] = (uv>>i)&1;
for(int i=7; i>=0; i--)
orz[8+i] = (uw>>i)&1;
for(int i=7; i>=0; i--)
orz[i] = (ux>>i)&1;
faq = 0;
int u=0;
for(int i=31; i>=0; i--){
if(!s[u][orz[i]]) break;
u = s[u][orz[i]];
if(tag[u])
nd[++faq] = (Node){tag[u], 31-i+1};
}
sort(nd+1, nd+1+faq, cmp);
int re=0, maxdis=0;
for(int i=1; i<=faq; i++){
if(nd[i].idx>=uy && nd[i].idx<=uz && (i==1 || nd[i].dis>maxdis))
re++;
maxdis = max(maxdis, nd[i].dis);
}
return re;
}
int main(){
cin>>m;
while(m--){
scanf("%s", ss);
if(ss[0]=='A') insert();
else printf("%d\n", query());
}
return 0;
}

loj2046 「CQOI2016」路由表的更多相关文章

  1. 【LOJ】#2046. 「CQOI2016」路由表

    题解 题面太长无法阅读系列-- 这里说的选择改变指的是在下面区间里碰上了一个更长的可匹配的地址,如果可匹配但是匹配长度没有当前的值大,那么不算改变 我们建一个可持久化的trie,查询的时候先在前\(a ...

  2. LoibreOJ 2042. 「CQOI2016」不同的最小割 最小割树 Gomory-Hu tree

    2042. 「CQOI2016」不同的最小割 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  3. loj #2044. 「CQOI2016」手机号码

    #2044. 「CQOI2016」手机号码 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  4. LibreOJ2044 - 「CQOI2016」手机号码

    Portal Description 给出两个十一位数\(L,R\),求\([L,R]\)内所有满足以下两个条件的数的个数. 出现至少\(3\)个相邻的相同数字: 不能同时出现\(4\)和\(8\). ...

  5. LibreOJ2043 - 「CQOI2016」K 远点对

    Portal Description 给出平面上的\(n(n\leq10^5)\)个整点,求在欧几里得距离下第\(k\)远的点对之间的距离. Solution k-d树+堆. 用小根堆维护当前找到的第 ...

  6. LibreOJ2045 - 「CQOI2016」密钥破解

    Portal Description 给出三个正整数\(e,N,c(\leq2^{62})\).已知\(N\)能表示成\(p\cdot q\)的形式,其中\(p,q\)为质数.计算\(r=(p-1)( ...

  7. LibreOJ2042 - 「CQOI2016」不同的最小割

    Portal Description 给出一个给出一个\(n(n\leq850)\)个点\(m(m\leq8500)\)条边的无向图.定义\(cut(s,t)\)等于\(s,t\)的最小割的容量,求在 ...

  8. 「CQOI2016」不同的最小割

    「CQOI2016」不同的最小割 传送门 建出最小割树,把每一个点对的最小割抠出来 \(\text{unique}\) 一下就好了. 参考代码: #include <algorithm> ...

  9. 「CQOI2016」K 远点对

    /* 考虑暴力 可以n ^ 2枚举点对 然后用一个容量为2k的小根堆来维护第k大 kd-tree呢就是来将这个暴力优化, 每次先找远的并且最远距离不如堆顶的话就不继续找下去 貌似挺难构造数据卡的 */ ...

随机推荐

  1. 未整理js

    函数+对象=方法 方法是动作 有参数的函数=实例 使用new关键字和函数来创建一个实例 var p =new Point(1,1)//平面几何的点 表示遍历的语句样子: for(var i =0; i ...

  2. visual studio2010中C#生成的,ArcGIS二次开发的basetool的dll,注册为COM组件tlb文件,并在arcmap中加载使用

    写了个标题好长啊~~~~ 这两天又认识了一个新玩意,记录一下下,啦啦啦~~~~~ 话说,认识arcgis快十年了,从桌面版到engine的二次开发,其实不过才认识到它的冰山一角, 它总是能带来很多还未 ...

  3. javascript设计模式之外观模式

    /* * 外观模式 * 外观模式的主要意义在于简化类的接口,使其易于调用 */ // 你常常在不经意中使用了外观模式,尤其类库中更多(处理兼容性问题) var addEvent = function ...

  4. [转]C#中StreamReader读取中文出现乱码

    摘自:C#中StreamReader读取中文出现乱码 原因是自Windows 2000之后的操作系统在文件处理时默认编码采用Unicode所以.NET文件的默认编码也是Unicode.除非另外指定,S ...

  5. cms-写帖子内容实现

    写帖子后台: mapper: <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperP ...

  6. java Vamei快速教程10 接口的继承和抽象类

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在实施接口中,我们利用interface语法,将interface从类定义中独立出 ...

  7. linux 命令——38 cal (转)

    cal命令可以用来显示公历(阳历)日历.公历是现在国际通用的历法,又称格列历,通称阳历.“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”. 1.命令格式: cal  ...

  8. linux 命令——33 df(转)

    linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命 ...

  9. linux 命令——11 nl (转)

    nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...

  10. POJ-1149 PIGS---最大流+建图

    题目链接: https://vjudge.net/problem/POJ-1149 题目大意: M个猪圈,N个顾客,每个顾客有一些的猪圈的钥匙,只能购买这些有钥匙的猪圈里的猪,而且要买一定数量的猪,每 ...