首页 > 其他分享 >【代码源 Div1 - 107】#452. 序列操作(思维)CF1198B

【代码源 Div1 - 107】#452. 序列操作(思维)CF1198B

时间:2023-02-09 15:03:24浏览次数:51  
标签:cout get int 452 CF1198B vis maxn 107 op


problem

【代码源 Div1 - 107】#452. 序列操作(思维)CF1198B_算法

solution

  • 注意到操作2是全局的,而且所有操作是离线的,所以可以记录操作 2 修改后的最大值,
  • 再开个 vis 数组记录当前的数是否被操作 1 修改过,然后反向暴力一遍。
#include<bits/stdc++.h>
using namespace std;

#define IOS ios::sync_with_stdio(0), cin.tie(0),cout.tie(0)
typedef long long LL;
const LL maxn = 1e6+10;

int a[maxn], vis[maxn];
tuple<int,int,int>op[maxn];

int main(){
IOS;
int n, q; cin>>n>>q;
for(int i = 1; i <= n; i++)cin>>a[i];
for(int i = 1; i <= q; i++){
int x, y, z; cin>>x>>y;
if(x==1)cin>>z;
op[i] = {x,y,z};
}
int mx = 0;
for(int i = q; i >= 1; i--){
if(get<0>(op[i]) == 2){
mx = max(mx, get<1>(op[i]));
}else if(vis[ get<1>(op[i]) ] == 0){
vis[get<1>(op[i])] = 1;
a[get<1>(op[i])] = max(mx, get<2>(op[i]) );
}
}
for(int i = 1; i <= n; i++){
if(vis[i])cout<<a[i];
else cout<<max(mx, a[i]);
cout<<" \n"[i==n];
}
return 0;
}


标签:cout,get,int,452,CF1198B,vis,maxn,107,op
From: https://blog.51cto.com/gwj1314/6047039

相关文章

  • 【codevs1077】多源最短路
    problemsolutioncodes//Floyd-wallshall模板#include<iostream>usingnamespacestd;intn,e[110][110];intmain(){ios::sync_with_stdio(false);cin>>n;for(......
  • 【codevs1079】回家
    problemsolutioncodes//标程Dijkstra#include<iostream>#include<algorithm>#include<vector>usingnamespacestd;//Tintn=60,m,vis[1010];//GraphstructEdge{in......
  • 【NOIP2006】【codevs1075】明明的随机数
    problemsolutioncodes#include<iostream>usingnamespacestd;intn,a[1010],t;intmain(){cin>>n;for(inti=1;i<=n;i++){intx;cin>>x;......
  • 【codevs1078】最小生成树
    problemsolutioncodes//MST-Prim-贪心-堆优化#include<iostream>#include<algorithm>#include<queue>usingnamespacestd;constintmaxn=110;//Graphinte[maxn][maxn],......
  • zzul1073_Java
    importjava.util.Scanner;/***限制解是正数,且脚数为偶数即可*/publicclasszzul1073{publicstaticvoidmain(String[]args){Scannersc=newScann......
  • zzul1074_Java
    packagecom.ittrash;importjava.util.Scanner;publicclasszzul1074{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);......
  • [SA记录] CF1073G Yet Another LCP Problem
    一开始刚看这题时感觉什么思路都没有,不过后来做完P4248[AHOI2013]差异和P7409SvT后再看感觉稍微好一点。这3道题都是SA+单调栈的套路。这一种套路看起来似乎基本都是处......
  • [LeetCode] 2452. Words Within Two Edits of Dictionary
    Youaregiventwostringarrays, queries and dictionary.AllwordsineacharraycompriseoflowercaseEnglishlettersandhavethesamelength.Inone edi......
  • 1077
    include<iostream>usingnamespacestd;intmain(){intn,b,c,ge,shi,bai,qian;cin>>n;inta[n];for(inti=0;i<n;i++){cin>>b;......
  • C++ 信奥赛 1077:统计满足条件的4位数
    1077:统计满足条件的4位数【题目描述】给定若干个四位数,求出其中满足以下条件的数的个数:个位数上的数字减去千位数上的数字,再减去百位数上的数字,再减去十位数上的数字......