\(对于操作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. STC15F2K60S2串口通信的应用。

    前言:由于不可抗拒因素,初始的STC12C5A60S2芯片由于无法进行烧录(...因为没带有锁紧座的开发板),暂且使用STC15F2K60S2芯片.. 一 串行通信概述: 串口通信有SPI IIC U ...

  2. leetcode c++做题思路和题解(1)——常规题总结

    常规题总结 0. 目录 两数之和 1. 两数之和 耗时4ms(98.82%),内存6.2m. 两数之和--寻找中值向两边扩散法 1.1 思路 思路很简单,就是先找数组中target/2的前后两个值,然 ...

  3. 基于ffmpeg不同编码方式转码后的psnr对比

    一.测试说明: 源文件:1080psrc.mp4 时长:900秒 源文件信息:Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [S ...

  4. HTTPS工作流程

    HTTPS工作流程 RSA算法 RSA的密钥分成两个部分: PublicKey 加密数据 验证签名 不能解密 任何人都可以获得 Private Key 数据签名(摘要算法) 解密 加密(不用此功能) ...

  5. 玩转SVG线条动画

    在上一节的<SVG线条动画实现原理>一文中,了解了SVG中线动画是怎么做的.在这篇文章中,了解了怎么借助Sketch这样的制作软件绘制SVG的路径,然后借助于SVG的stroke-dash ...

  6. 2019应届生,用python爬虫记录自己求职经历,分享求职中的一些坑

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  7. 数据结构(C语言版)---二叉树

    1.二叉树:任意一个结点的子结点个数最多两个,且子结点的位置不可更改,二叉树的子树有左右之分. 1)分类:(1)一般二叉树(2)满二叉树:在不增加树的层数的前提下,无法再多添加一个结点的二叉树就是满二 ...

  8. google无法播放mp4 chrome无法播放h264

    写在前面 我在chrome上无法播放h264+Acc的mp4,在firefox.ie都可以播放,而且此mp4在vlc终可以正常播放. 视频链接:http://106.14.221.185:7001/p ...

  9. linux CVE-2019-14287 Sudo提权漏洞

    CVE-2019-14287 sudo介绍 sudo,也就是以超级管理员身份运行(superuser do)的意思.sudo 是 Linux 中最常使用的重要实用程序之一,它功能十分强大,几乎安装在每 ...

  10. 小知识点:session的存放位置

    在php.ini里的配置session.save_path是注释掉的,那么Seesion保存的路径在不同类型操作系统保存在什么位置? Linux: /tmp 或 /var/lib/php/sessio ...