【HDU1754】I hate it!
来源:互联网 发布:ios10怎么信任软件 编辑:程序博客网 时间:2024/06/05 09:10
题面
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。
这让很多学生很反感。
不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。
Input
本题目包含多组测试,请处理到文件结束。
在每个测试的第一行,有两个正整数 N 和 M ( 0
Output
对于每一次询问操作,在一行里面输出最高成绩。
Sample Input
5 6
1 2 3 4 5
Q 1 5
U 3 6
Q 3 4
Q 4 5
U 2 9
Q 1 5
Sample Output
5
6
5
9
题解
(洛谷上的题目略有不同)
这道题目直接用线段树就可以解决
我只是拿来学习一下zkw线段树
具体的我也不知道为什么
学会了再写
//练习一下zkw线段树 #include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>using namespace std;#define INF 200000000int M,n,m;int c[1<<20];void Build(int n)//建树 { for(M=1;M-2<n;M<<=1); for(int i=M+1;i<=M+n;++i) scanf("%d",&c[i]); for(int i=M;i;--i) { c[i]=max(c[i<<1],c[(i<<1)^1]); c[i<<1]-=c[i]; c[(i<<1)^1]-=c[i]; }}int Query(int l,int r)//查询操作 { int L=-INF,R=-INF; l+=M-1;r+=M+1;//换成开区间操作 while(l^r^1) { L+=c[l];R+=c[r]; if(~l&1)L=max(L,c[l+1]); if(r&1) R=max(R,c[r-1]); l>>=1;r>>=1; } L+=c[l];R+=c[r]; int Ans=max(L,R); for(l>>=1;l;l>>=1)Ans+=c[l]; return Ans;}void Change(int X,int w)//单点修改{ X+=M; c[X]+=w-Query(X-M,X-M); for(X>>=1;X;X>>=1) { int A=max(c[X<<1],c[(X<<1)^1]); c[X<<1]-=A; c[(X<<1)^1]-=A; c[X]+=A; }}int main(){ scanf("%d%d",&n,&m); memset(c,0,sizeof(c)); Build(n); for(int i=1;i<=m;++i) { char ch; int A,B; cin>>ch; scanf("%d%d",&A,&B); if(ch=='U')//更新操作 { if(Query(A,A)<B) Change(A,B); } else printf("%d\n",Query(A,B)); } } return 0;}
阅读全文
0 0
- hdu1754 I Hate It
- HDU1754 I Hate It
- HDU1754:I Hate It
- HDU1754--I Hate It
- HDU1754 I hate it
- hdu1754 I Hate It
- HDU1754:I Hate It
- hdu1754 I Hate It
- hdu1754 I Hate It
- hdu1754 I Hate It
- hdu1754 I Hate It
- hdu1754 I Hate It
- hdu1754 I Hate it
- HDU1754 I Hate It
- hdu1754 I Hate It
- hdu1754 I Hate It
- HDU1754 I Hate It
- HDU1754 I Hate It
- Win10 64位安装tensorflow
- HashMap实现原理及源码分析
- LeetCode-459. Repeated Substring Pattern
- Inside the C++ Model第二讲之 程序转化语意学(Program Transformation)
- HTML入门笔记14-HTML中插入图片标签
- 【HDU1754】I hate it!
- 【Docker】在ubuntu14.04镜像上安装GPU显卡驱动, CUDA和CUDNN
- (87)异常日志文件:通过改变标准输出到日志文件
- Chat room (codeforces-58A)
- Spring-task定时任务配置
- hdu 2052 Picture
- Node.js实现注册邮箱激活功能
- 进制转换(十进制数m转换成n进制)
- MFC串口通信串口指示灯的实现