博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1531 I Hate It
阅读量:4514 次
发布时间:2019-06-08

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

题目背景

很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。

题目描述

不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩

输入输出格式

输入格式:

 

第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000 ),分别代表学生的数目和操作的数目。学生ID编号分别从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩。接下来有M行。每一行有一个字符 C (只取'Q'或'U') ,和两个正整数A,B。当C为'Q'的时候,表示这是一条询问操作,它询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少。当C为'U'的时候,表示这是一条更新操作,如果当前A学生的成绩低于B,则把ID为A的学生的成绩更改为B,否则不改动。

 

输出格式:

 

对于每一次询问操作,在一行里面输出最高成绩

 

输入输出样例

输入样例#1:
5 61 2 3 4 5Q 1 5U 3 6Q 3 4Q 4 5U 2 9Q 1 5
输出样例#1:
5659 线段树区间查询+单点修改
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #define ls k<<1 8 #define rs k<<1|1 9 using namespace std;10 const int MAXN=2000001;11 void read(int &n)12 {13 char c='+';int x=0;bool flag=0;14 while(c<'0'||c>'9')15 {c=getchar();if(c=='-')flag=1;}16 while(c>='0'&&c<='9')17 {x=x*10+c-48,c=getchar();}18 flag==1?n=-x:n=x;19 }20 int n,m;21 int ans=-1;22 struct node23 {24 int l,r,w;25 }tree[MAXN*4];26 void update(int k)27 {28 tree[k].w=max(tree[ls].w,tree[rs].w);29 }30 void build_tree(int ll,int rr,int k)31 {32 tree[k].l=ll;tree[k].r=rr;33 if(ll==rr)34 {35 read(tree[k].w);36 return ;37 }38 int mid=(ll+rr)>>1;39 build_tree(ll,mid,ls);40 build_tree(mid+1,rr,rs);41 update(k);42 }43 void query(int ll,int rr,int k)44 {45 if(ll>tree[k].r||rr
>1;53 query(ll,rr,ls);54 query(ll,rr,rs);55 }56 void change(int pos,int v,int k)57 {58 if(pos>tree[k].r||pos
>s;77 if(s[0]=='Q')// 查询78 {79 int l,r;80 read(l);read(r);81 ans=0;82 query(l,r,1);83 printf("%d\n",ans);84 } 85 else 86 {87 int x,y;88 read(x);read(y);89 ans=0;90 query(x,x,1);91 if(ans

 

 

转载于:https://www.cnblogs.com/zwfymqz/p/7137570.html

你可能感兴趣的文章
Day3:Spring-JDBC、事务管理
查看>>
模块的四种形式
查看>>
Jmeter属性和变量
查看>>
java并发编程:并发容器之CopyOnWriteArrayList(转)
查看>>
python基础——面向对象进阶下
查看>>
Linux vi 命令详解
查看>>
本地如何搭建IPv6环境测试你的APP
查看>>
C++ NULL与nullptr的区别
查看>>
Discretized Streams, 离散化的流数据处理
查看>>
Spark源码分析 – SchedulerBackend
查看>>
python字符串处理
查看>>
live555学习笔记4-计划任务(TaskScheduler)深入探讨
查看>>
Python虚拟机函数机制之名字空间(二)
查看>>
线段树
查看>>
SharePoint2010联合搜索——Google、百度
查看>>
php静态
查看>>
python基础之文件操作
查看>>
在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因...
查看>>
个人github链接及git学习心得总结
查看>>
c++ 计算器 带括号 代码实现
查看>>