\(对于操作1,我们只关心最后一次操作。\)

\(对于操作2,我们只关心值最大的一次操作。\)

\(也就是说,我们记录每个居民最后一次被修改的位置\)

\(然后它的最终答案就是从这个位置起,max(操作2最大的一次,最后一次修改的值)\)

\(当然,如果没有被修改过,默认被修改的位置在0.\)

\(\color{Red}{话说回来真的很佩服那些写线段树的人,为什么我不会用线段树呢(●ˇ∀ˇ*|}\)

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+9;
int n,w,da[maxn],b[maxn],vis[maxn];
inline int max(int a,int b){return a>b?a:b;}
struct p{
int lei,num,x;
}a[maxn];
int main()
{
cin>>n;
for(int i=1;i<=n;i++) scanf("%d",&b[i]);
scanf("%d",&w);
for(int i=1;i<=w;i++)
{
scanf("%d",&a[i].lei);
if(a[i].lei==1)
{
scanf("%d%d",&a[i].num,&a[i].x);
vis[a[i].num]=i,b[a[i].num]=a[i].x;
}
else
scanf("%d",&a[i].x);
}
for(int i=w;i>=1;i--)
{
if(a[i].lei==1) da[i]=da[i+1];//不是修改区间就继承最大
else da[i]=max(da[i+1],a[i].x);//否则尝试更新最大
}
da[0]=da[1];
for(int i=1;i<=n;i++)
{
int xu=vis[i];//最后一次被修改的位置
printf("%d ",max(da[xu],b[i]));
}
}

B. Welfare State(RMQ问题的逆向考虑)的更多相关文章

  1. [Codeforces 1199D]Welfare State(线段树)

    [Codeforces 1199D]Welfare State(线段树) 题面 给出一个长度为n的序列,有q次操作,操作有2种 1.单点修改,把\(a_x\)修改成y 2.区间修改,把序列中值< ...

  2. Codeforces - 1199D - Welfare State - 单调栈 / 线段树

    https://codeforc.es/contest/1199/problem/D 其实后来想了一下貌似是个线段树的傻逼题. 单调栈是这样思考的,每次单点修改打上一个最终修改的时间戳.每次全体修改就 ...

  3. codeforces 1198B - Welfare State

    题目链接:http://codeforces.com/problemset/status 题目大意为有n个市民,每个市民有ai点数财富,以下有q次操作,操作类型为两类,1类:把第p个市民的财富改为x, ...

  4. Codeforces Round #576 (Div. 2) D. Welfare State

    http://codeforces.com/contest/1199/problem/D Examples input1 output1 input2 output2 Note In the firs ...

  5. D. Welfare State

    There is a country with 

  6. 【CodeForces】CodeForcesRound576 Div1 解题报告

    点此进入比赛 \(A\):MP3(点此看题面) 大致题意: 让你选择一个值域区间\([L,R]\),使得序列中满足\(L\le a_i\le R\)的数的种类数不超过\(2^{\lfloor\frac ...

  7. Codeforces Round #576 (Div. 1)

    Preface 闲来无事打打CF,就近找了场Div1打打 这场感觉偏简单,比赛时艹穿的人都不少,也没有3000+的题 两三个小时就搞完了吧(F用随机水过去了) A. MP3 题意不好理解,没用翻译看了 ...

  8. Browse Princeton's Series (by Date) in Princeton Economic History of the Western World

    Browse Princeton's Series (by Date) in Princeton Economic History of the Western World Joel Mokyr, S ...

  9. Codeforces Round #576 (Div. 2) 题解

    比赛链接:https://codeforc.es/contest/1199 A. City Day 题意:给出一个数列,和俩个整数\(x,y\),要求找到序号最靠前的数字\(d\),使得\(d\)满足 ...

随机推荐

  1. alg-最长不重复子串

    class Solution { public: int lengthOfLongestSubstring(const std::string& s) { int max_length = 0 ...

  2. git撤销远程commit

    git reset --hard [commit_id] git push origin HEAD --force

  3. 使用SVG内置API计算图形或点经过transform之后的新坐标

    一个应用场景是,点击一条路径,显示该路径的控制点.因为有transform变形( 平移.缩放.倾斜.旋转等变换),所以获取变形后的新坐标需要计算. 纯数学的方法,就是用2D变换矩阵的一些公式去运算,过 ...

  4. D - Yet Another Monster Killing Problem

    题目连接: https://codeforces.com/contest/1257/problem/D 题目大意: n个怪兽,m个英雄,每个怪兽有一定的能力值,每个英雄有一定的能力值和一定的耐力值.耐 ...

  5. python第三方库安装与卸载

    一.检查python环境是否正常 python安装完毕并设置环境变量后,可在cmd中运行python查看,显示版本等信息  二.查看已经安装的第三方库 通过pip list可查看已安装的库,以及对应的 ...

  6. C++调用TensorFlow

    在使用C++调用TensorFlow接口时出现的问题,网上没有资料,问了老师才知道的. Exception ignored in: <module 'threading' from 'E:\\t ...

  7. GitHub 热点速览 Vol.17:在?各家视频会员要不要?

    作者:HelloGitHub-小鱼干 摘要:经济实用,用作上周的 GitHub 热点的横批再合适不过.先不说 GitHub Trending 上不止一个的会员共享项目,免你找好友刷脸要会员,这项目实在 ...

  8. jquery字符串转数字

    1:parseInt(string) : 这个函数的功能是从string的开头开始解析,返回一个整数,说起来比较笼统,下面来看几个实例,大家就明白了: parseInt("1234blue& ...

  9. 巧用Grafana和Arthas自动抓取K8S中异常Java进程的线程堆栈

    前言 近期发现业务高峰期时刻会出现CPU繁忙导致的timeout异常,通过监控来看是因为Node上面的一些Pod突发抢占了大量CPU导致的. 问: 没有限制CPU吗?是不是限制的CPU使用值就可以解决 ...

  10. thinkphp5.1+ 使用 Redis 缓存

    修改 config/cache.php 将其配置成多个缓存类型,示例 <?php // +---------------------------------------------------- ...