tyzc114514 @ 2022-08-26 14:27:53
一个TLE,和一个RE。
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int k,s,l;
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
int f=9999;
for(int i=1;i<=m;i++){
cin>>k>>s>>l;
for(int i=k;i<=s;i++)
a[i]+=l;
}
for(int i=1;i<=n;i++){
if(a[i]>100)a[i]=100;
}
for(int i=1;i<=n;i++){
if(a[i]<f)f=a[i];
}
cout<<f;
return 0;
}
by liuhongcheng2013 @ 2022-08-26 14:41:48
能不用万能头文件吗? 因为万能头文件里的一些函数名你可能不知道,在定义变量名就可能定义成函数名 比如万能头文件里有个函数叫“time”,经常求时间的时候就会用到“变量类型 time;”
by tyzc114514 @ 2022-08-26 14:45:09
@liuhongcheng2013 但是用iostream也不行啊
by Ranya @ 2022-08-26 14:48:33
你的
for(int i=1;i<=m;i++){
cin>>k>>s>>l;
// for(int i=k;i<=s;i++)
for(int j=k;j<=s;j++)
a[j]+=l;
}
里面两个变量都是 i
by Ranya @ 2022-08-26 14:49:19
而且数组也开小了
by tyzc114514 @ 2022-08-26 14:50:44
@Ran_Y 变成j也不行啊
by leoqing @ 2022-08-26 15:03:54
要用树状数组
by Lizy09 @ 2022-10-04 19:27:53
1.注意范围,n <= 5 * 10 ^ 6,一个一个加肯定会超时,得用差分思想去做
2.最大值f = 0x7fffffff,16进制int的最大值
by Lizy09 @ 2022-10-04 19:29:22
数组也开小了,应该是5000005
by Lizy09 @ 2022-10-04 19:35:41
你想想如果只是普通的区间遍历会是黄题吗