博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces911G
阅读量:6259 次
发布时间:2019-06-22

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

题意:一个长为n的数组,q次操作,l,r,x,y,将区间[l,r]中等于x的数变为y,a[i],x,y<=100,n,q<=200000

题解:学到了。。。虽然以前好像做过类似的题,但这里没想到。注意到数值范围为[1,100],我们可以用线段树,每个节点开一个大小为100的数组f[i],表示这个区间内i应该变为f[i],然后应该就做完了。。。

#include
const int N=200010;struct node{
int l,r,f[101];}a[N<<2];int n,m,b[N];int read(){
int d=0,f=1; char c=getchar(); while (c<'0'||c>'9'){
if (c=='-') f=-1; c=getchar();} while (c>='0'&&c<='9') d=d*10+c-48,c=getchar(); return d*f;}void build(int k,int l,int r){ a[k].l=l; a[k].r=r; for (int i=1;i<=100;i++) a[k].f[i]=i; if (l==r) return; int mid=(l+r)>>1; build(k<<1,l,mid); build(k<<1|1,mid+1,r);}void pushdown(int k){ int k1=k<<1,k2=k1|1; for (int i=1;i<=100;i++) a[k1].f[i]=a[k].f[a[k1].f[i]], a[k2].f[i]=a[k].f[a[k2].f[i]]; for (int i=1;i<=100;i++) a[k].f[i]=i;}void update(int k,int l,int r,int x,int y){ if (l<=a[k].l&&a[k].r<=r) { for (int i=1;i<=100;i++) if (a[k].f[i]==x) a[k].f[i]=y; return; } pushdown(k); int mid=(a[k].l+a[k].r)>>1; if (r<=mid) update(k<<1,l,r,x,y); else if (l>mid) update(k<<1|1,l,r,x,y); else update(k<<1,l,mid,x,y),update(k<<1|1,mid+1,r,x,y);}int ask(int k,int x){ if (a[k].l==a[k].r) return a[k].f[b[x]]; int mid=(a[k].l+a[k].r)>>1; if (x<=mid) return a[k].f[ask(k<<1,x)]; else return a[k].f[ask(k<<1|1,x)];}int main(){ n=read(); for (int i=1;i<=n;i++) b[i]=read(); build(1,1,n); m=read(); while (m--) { int l=read(),r=read(),x=read(),y=read(); update(1,l,r,x,y); } for (int i=1;i<=n;i++) printf("%d ",ask(1,i)); return 0;}
View Code

 

转载于:https://www.cnblogs.com/lujiaju6555/p/8441070.html

你可能感兴趣的文章
php函数应用实例
查看>>
拼接问号分割的参数占位符
查看>>
CSS实现背景色渐变
查看>>
SQLite3 数据库指针传递
查看>>
常用的7大排序算法汇总
查看>>
Linxu SSH免密登录-配置Hadoop时使用
查看>>
计算二叉树总结点/叶结点个数
查看>>
sizeof 和strlen的区别
查看>>
第十章 Scala 容器(三):使用可变与不可变容器特有方法
查看>>
XCode 7上传遇到ERROR ITMS-90535 Unexpected
查看>>
工厂模式
查看>>
pycharm激活码永久有效2019年5月28日
查看>>
VUE(1)
查看>>
QBlog博客 V2.5 版本发布 增加健康频道[支持多语言、多用户、多数据库、目录级URL]...
查看>>
基于MIC平台的向量加示例
查看>>
搜索引擎 & sniff
查看>>
linux 编程使用管道来控制 shell
查看>>
免费客户关系管理软件SinoCRM公益版正式发布
查看>>
Python与C++引用分析
查看>>
React组件间的传值
查看>>