題目背景
wwh是蕪湖一中的一名程式設計師,有一天,他有幸被ycw的找去。。。
ycw有n張數學考試卷。
題目描述
ycw的問題是這樣的:
ycw有一大堆的考試卷,一共n張,這些考試卷被他排成一行,每次考試都有乙個預期成績。
ycw一共有m個問題:
1 x k 將第x次考試的預期成績加上為k(比如,ycw重考一遍)
2 x y k 將第x到y次考試的預期成績都加上k(比如,ycw瘋狂刷題)
3 x y 求第x到y次考試的預期成績最大值。
4 x y 求第x到y次考試的預期成績最小值。
ycw不想被老師和家長找,也不想寫線段樹,於是他找到了wwh。
wwh只會暴力,於是找到了ak了noi2017的c國的第一oier,你,來幫他解決這個問題。
輸入輸出格式
輸入格式:
第一行兩個數n,m。
第二行n個數,分別表示原來考試的預期成績
第3~m+2行,表示ycw的問題,格式如題目描述中所述。
輸出格式:
每行乙個數,表示3,4詢問的答案
input
10 7
3 2 5 7 9 8 6 4 8 100
1 2 6
3 1 2
2 3 5 4
4 6 10
3 5 8
2 9 10 3
3 1 10
output84
13103
#include
#include
#include
#include
#include
#define ll long long
using
namespace std;
const
int n=
200002
;ll x,y,mx[n*4]
,mn[n*4]
,add[n*4]
,n,mt,op,z,a[n]
;ll maxx
(ll p,ll q)
ll minn
(ll p,ll q)
inline ll read()
while
(ch>=
'0'&&ch<=
'9')
return s*f;
}void
pushdown
(ll rt)
}void
pushup
(ll rt)
void
build
(ll l,ll r,ll rt)
ll m=
(l+r)/2
;build
(l,m,rt<<1)
;build
(m+1
,r,rt<<1|
1);pushup
(rt)
;}
ll query_min
(ll l,ll r,ll l,ll r,ll rt)
ll query_max
(ll l,ll r,ll l,ll r,ll rt)
void
update
(ll l,ll r,ll c,ll l,ll r,ll rt)
long
long m=
(l+r)/2
;pushdown
(rt);if
(l<=m)
update
(l,r,c,l,m,rt*2)
;if(r>m)
update
(l,r,c,m+
1,r,rt*2+
1);pushup
(rt);}
intmain()
else
if(op==2)
else
if(op==3)
else
if(op==4)
}return0;
}
UOJ 519 ycw的成績表
wwh是蕪湖一中的一名程式設計師,有一天,他有幸被ycw的找去。ycw有n張數學考試卷。ycw的問題是這樣的 ycw有一大堆的考試卷,一共n張,這些考試卷被他排成一行,每次考試都有乙個預期成績。ycw一共有m個問題 1 x k 將第x次考試的預期成績加上為k 比如,ycw重考一遍 2 x y k 將...
06 01 向成績表中插入資料
begin transaction declare errorsum int set errorsum 0 向分數表中插入資料 insert into result studentno,subjectid,examdate,studentresult values 1,1,getdate 90 se...
C語言之學生成績表
練習 班主任需要在計算機中錄入n個同學的成績資訊,資訊包含 學號 姓名 性別 總成績 語文成績 英語成績 數學成績 程式在編寫時有如下要求 1.n由班主任確定,且使用malloc申請記憶體 2.學號以201805xx形式,姓名為英文名,語文成績 英語成績 數學成績由班主任輸入,總成績需要由程式計算 ...