题目传送门
模拟
#include<bits/stdc++.h>
using namespace std;
int n,m,k,sum=0;
int a[100010];
int main(){
cin>>n>>m>>k;
int in,out,ps;
for(int i=1;i<=m;i++){
cin>>in>>out>>ps;
for(int j=in;j<=out;j++)a[j]+=ps;
}
for(int i=1;i<=n;i++){
if(a[i]>k)sum++;
}
cout<<sum;
return 0;
}
我一看测试对了就提交了然后WA。。。
然后憋出来了O(N)...
#include<bits/stdc++.h>
using namespace std;
int n,m,k,num=0,sum=0;
int din[100010],dout[100010];
int main(){
cin>>n>>m>>k;
int in,out,ps;
for(int i=1;i<=m;i++){
cin>>in>>out>>ps;
din[in]=ps;
dout[out]=-ps;
}
for(int i=0;i<=n+1;i++){
num+=din[i];
if(num>k)sum++;
num+=dout[i];
}
cout<<sum;
return 0;
}
然后测试过了满怀期待的交上去
。。。
然后打印调试,和题目完全没有差别
dalao们救救小蒟蒻吧orz
(我看标签上说的是前缀和差分但是前缀和差分是设么。。。)