题意翻译

给出一个数列,有q个操作,每种操作是把区间[l,r]中等于x的数改成y.输出q步操作完的数列.

输入输出格式

输入格式:

The first line contains one integer n n n ( 1<=n<=200000 1<=n<=200000 1<=n<=200000 ) — the size of array a a a .

The second line contains n n n integers a1 a_{1} a1​ , a2 a_{2} a2​ , ..., an a_{n} an​ ( 1<=ai<=100 1<=a_{i}<=100 1<=ai​<=100 ) — the elements of array a a a .

The third line contains one integer q q q ( 1<=q<=200000 1<=q<=200000 1<=q<=200000 ) — the number of queries you have to process.

Then q q q lines follow. i i i -th line contains four integers l l l , r r r , x x x and y y y denoting i i i -th query ( 1<=l<=r<=n 1<=l<=r<=n 1<=l<=r<=n , 1<=x,y<=100 1<=x,y<=100 1<=x,y<=100 ).

输出格式:

Print n n n integers — elements of array a a a after all changes are made.

输入输出样例

输入样例#1: 复制
输出样例#1: 复制
$c[L(rt)][i]=c[rt][c[L(rt)][i]]$

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int c[][];
bool flag[][];
int n,a[],ans[];
void build(int rt,int l,int r)
{int i;
for (i=;i<=;i++)
c[rt][i]=i;
if (l==r) return;
int mid=(l+r)/;
build(rt<<,l,mid);
build(rt<<|,mid+,r);
}
void pushdown(int rt)
{int i;
for (i=;i<=;i++)
{
c[rt<<][i]=c[rt][c[rt<<][i]];
c[rt<<|][i]=c[rt][c[rt<<|][i]];
}
for (i=;i<=;i++)
c[rt][i]=i;
}
void update(int rt,int l,int r,int L,int R,int x,int y)
{int i;
if (l>=L&&r<=R)
{
for (i=;i<=;i++)
if (c[rt][i]==x) c[rt][i]=y;
return;
}
pushdown(rt);
int mid=(l+r)/;
if (L<=mid) update(rt<<,l,mid,L,R,x,y);
if (R>mid) update(rt<<|,mid+,r,L,R,x,y);
}
void query(int rt,int l,int r)
{
if (l==r)
{
ans[l]=c[rt][a[l]];
return;
}
int mid=(l+r)/;
pushdown(rt);
query(rt<<,l,mid);
query(rt<<|,mid+,r);
}
int main()
{int i,q,l,r,x,y;
cin>>n;
for (i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
build(,,n);
cin>>q;
for (i=;i<=q;i++)
{
scanf("%d%d%d%d",&l,&r,&x,&y);
update(,,n,l,r,x,y);
}
query(,,n);
for (i=;i<n;i++)
printf("%d ",ans[i]);
cout<<ans[n]<<endl;
}

codefroces 911G Mass Change Queries的更多相关文章

  1. Mass Change Queries CodeForces - 911G (线段树合并)

    链接 大意: 给定序列, 每次操作将区间[l,r]中的x全改为y, 最后输出序列 权值范围比较小, 对每个权值开一颗线段树, 每次将x合并到y上即可 #include <iostream> ...

  2. Mass Change Queries Codeforces - 911G

    https://codeforces.com/contest/911/problem/G 没想到线段树合并还能这么搞.. 对每个权值建一个线段树(动态开点),如果权值为k的线段树上第i位为1,那么表示 ...

  3. [CF911G]Mass Change Queries

    题目大意: 给你一个长度为n的数列a,按顺序进行以下m次操作,每次将区间[l,r]中的所有x变成y,问最后数列是怎样的. 思路: 线段树. 每个线段树结点上维护当前区间每个数分别会变成多少.时间复杂度 ...

  4. CF911G Mass Change Queries(线段树+暴力)

    cf机子真的快. 其实这个题的维护的信息还是很巧妙的. 首先,观察到题目中涉及到,区间修改这个操作,然后最后只查询一次,我们不妨用线段树来维护这个过程. 但是貌似直接维护每个位置的值可能不太好维护. ...

  5. Educational Codeforces Round 35

    Nearest Minimums 相同的数里最小的数里的最小距离 Solution Two Cakes Solution Three Garlands 瞎比试 Solution Inversion C ...

  6. How To Do Master Record Mass Maintenance

    How To Do Master Record Mass Maintenance Which master records mass maintenance can be done? What do ...

  7. SAP事务码 一

    SE80 -- edit source code. SE24 -- class create or display. SFP -- created and maintained independent ...

  8. 解析大型.NET ERP系统 十三种界面设计模式

    成熟的ERP系统的界面应该都是从模板中拷贝出来的,各类功能的界面有规律可遵循.软件界面设计模式化或是艺术性的创作,我认可前者,模式化的界面客户容易举一反三,降低学习门槛.除了一些小部分的功能界面设计特 ...

  9. Database Schemas Found in Oracle E-Business Suite

    https://docs.oracle.com/cd/E26401_01/doc.122/e22952/T156458T659606.htm Table of Database Schemas in ...

随机推荐

  1. Maven+SSM框架搭建【spring+springmvc+mybatis】

    本案例用到:ssm[spring+springmvc+mybatis]框架 数据库:mysql (推荐使用mysql 或者 sqlserver  .oracle太大,一般大型项目才会用到) 开发工具: ...

  2. C语言第0次作业

    一.你认为大学的学习生活.同学关系.师生应该是怎样的? (1)学习生活:首先大学的学习生活应该是充实的,尽量做到时时有事做.每天有计划的学习.生活.华尔街有一位名叫罗伊.R.纽伯格的投资大师,他每天早 ...

  3. 高级软件工程2017第7次作业--C++团队项目:Beta阶段综合报告

    1.Beta阶段敏捷冲刺每日报告 Bate版敏捷冲刺报告--day0 Bate版敏捷冲刺每日报告--day1 Bate敏捷冲刺每日报告--day2 Bate敏捷冲刺每日报告--day3 Bate敏捷冲 ...

  4. Alpha冲刺Day2

    Alpha冲刺Day2 一:站立式会议 今日安排: 首先完善前一天的剩余安排工作量,其次我们把项目大体分为四个模块:数据管理员.企业人员.第三方机构.政府人员.数据管理员这一模块,数据管理员又可细分为 ...

  5. "未找到应用程序的“aps-environment”的权利字符串"

    1.先生成App ID,在去Provisioning里面生成新的Profile 2.删除Xcode里面原来的push profile(如果没有就不用删除)再次双击新下载的profile(mobilep ...

  6. Junit 4 测试中使用定时任务操作

    难度:测试中执行线程操作 package com.hfepc.job.dataCollection.test; import java.util.Date; import java.util.List ...

  7. prop attr 到底哪里不一样?

    好吧 首先承认错误  说好的每天进行一次只是总结  但是我没坚持住 准确的来说 我并没有每天会学到了东西 但是 我一直在持续努力着  以后应该不会每天都写  但是自己觉得有用的  或者想加强记忆的 可 ...

  8. 机器学习中 K近邻法(knn)与k-means的区别

    简介 K近邻法(knn)是一种基本的分类与回归方法.k-means是一种简单而有效的聚类方法.虽然两者用途不同.解决的问题不同,但是在算法上有很多相似性,于是将二者放在一起,这样能够更好地对比二者的异 ...

  9. js控制表格实时编辑

    点击添加,在表格的最后一行添加一行表单元素,右侧按钮变为保存和取消.(点击保存,数据用ajax无刷新添加到界面,点击取消,取消此行的添加.)点击编辑,在本行改为表单,带有原来的值,右侧按钮变为确认和取 ...

  10. 阿里云API网关(9)常见问题

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...