博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 4523 [Cqoi2016]路由表 Trie树
阅读量:5154 次
发布时间:2019-06-13

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

 Trie树的应用题目.

 在线建立一棵01 Trie树,然后按照要求用询问在上面跑,用单调栈维护答案即可.

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define ll long long#define db double #define up(i,j,n) for(int i=j;i<=n;i++)#define pii pair
#define uint unsigned int#define FILE "dealing"int read(){ int x=0,f=1,ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();} return x*f;}template
bool cmax(T& a,T b){return a
bool cmin(T& a,T b){return a>b?a=b,true:false;}const int maxn=4010000;int cnt=1,c[maxn][2],id,now,w[maxn],n,k,num=0,l,r,q[maxn],tail=0;vector
t[maxn];inline void add(int x){ if(num==k)return; num++; if(!c[now][x])c[now][x]=++cnt; now=c[now][x]; if(num==k)t[now].push_back(id);}char ch;inline void change(int x){ up(i,1,8){ w[i]=x&1; x>>=1; }}inline void query(int x){ now=c[now][x]; for(int i=0;i
t[now][i])tail--; if(t[now][i]>=l&&t[now][i]<=r){ while(q[tail]>t[now][i])tail--; q[++tail]=t[now][i]; } }}int main(){ freopen(FILE".in","r",stdin); freopen(FILE".out","w",stdout); n=read(); int a[5]; up(s,1,n){ scanf(" %c",&ch); if(ch=='A'){ now=1;num=0;id++; up(i,1,4)a[i]=read(); k=read(); up(i,1,4){ change(a[i]); for(int j=8;j>=1;j--) add(w[j]); } } if(ch=='Q'){ now=1;num=0;tail=0; up(i,1,4)a[i]=read(); l=read(),r=read(); up(i,1,4){ change(a[i]); for(int j=8;j>=1;j--) query(w[j]); } //cout<

  

转载于:https://www.cnblogs.com/chadinblog/p/6552251.html

你可能感兴趣的文章
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
GitLab+Nginx(SSL)+MySQL+Ruby安装部署
查看>>
visualSVN server安装使用
查看>>
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
网络的基础知识
查看>>
ObjectiveC基础教程(第2版)
查看>>
BZOJ2243 洛谷2486 [SDOI2011]染色 树链剖分
查看>>
centos 引导盘
查看>>
JS绘制曲线图
查看>>
Notes of Daily Scrum Meeting(12.8)
查看>>
在Eclipse中查看JDK类库的源代码
查看>>
linux每日命令(32):gzip命令
查看>>
第三次作业
查看>>
Apriori算法
查看>>
onlevelwasloaded的调用时机
查看>>
求出斐波那契数组
查看>>
Vue.js 基础学习之组件通信
查看>>
Java程序员的成长之路
查看>>
lr_start_transaction/lr_end_transaction事物组合
查看>>
那些React-Native踩过的的坑
查看>>