0
已采纳
熊潇然
初级启示者
初级启示者
这一题要用差分,但是用模拟也可以得满分
模拟思路:
(输入不讲,由于时间复杂度很高,输入用scanf)
while(m--)(m次循环,每次m-1,若m<=0则退出循环)
输入x,y,z
遍历x~y,每次a[i]+=z(加分)
定义mx=0,用来求最大值
遍历1~n,打擂台最大值(max函数也行)
输出mx
不会的问我
0
0
0
潘登
高级天翼
高级天翼
用差分,众所周知,差分有亿点难。
SO,我来讲仔细点。
1.定义:a[],d[]//a为原数组,d为差分数组
2.输入:在输入a[i]时随便把差分数组算出来d[i]=a[i]-a[i-1];
3.改变分数(重点)如果在这一区间内的数都加上一个数,符合差不变原理,所以只要改两个差分数组d[a]+=c; d[b+1]-=c;
4.输出
完结✿✿ヽ(°▽°)ノ✿
0
潘登
高级天翼
高级天翼
用差分,众所周知,差分有亿点难。
SO,我来讲仔细点。
1.定义:a[],d[]//a为原数组,d为差分数组
2.输入:在输入a[i]时随便把差分数组算出来d[i]=a[i]-a[i-1];
3.改变分数(重点)如果在这一区间内的数都加上一个数,符合差不变原理,所以只要改两个差分数组d[a]+=c; d[b+1]-=c;
4.输出
完结✿✿ヽ(°▽°)ノ✿
0
0