cjihyy @ 2022-07-15 15:07:01
为什么这道题sort反而不如擂台快?
#include <bits/stdc++.h>
using namespace std;
const int maxn=5000005;
int a[maxn],d[maxn];
int main(){
int n,p;
cin>>n>>p;
for(int i=1;i<=n;i++){
cin>>a[i];
d[i]=a[i]-a[i-1];
}
for(int i=1;i<=p;i++){
int x,y,z;
cin>>x>>y>>z;
d[x]+=z;
d[y+1]-=z;
}
for(int i=1;i<=n;i++){
a[i]=d[i]+a[i-1];
}
sort(a+1,a+1+n);
cout<<a[1];
return 0;
}
如上,这份代码会TLE最后一个点 而下面这份代码则不会
#include <bits/stdc++.h>
using namespace std;
const int maxn=5000005;
int a[maxn],d[maxn];
int main(){
int n,p;
cin>>n>>p;
for(int i=1;i<=n;i++){
cin>>a[i];
d[i]=a[i]-a[i-1];
}
for(int i=1;i<=p;i++){
int x,y,z;
cin>>x>>y>>z;
d[x]+=z;
d[y+1]-=z;
}
for(int i=1;i<=n;i++){
a[i]=d[i]+a[i-1];
}
int min=1e9;
for(int i=1;i<=n;i++)
if(min>a[i])min=a[i];
cout<<min;
return 0;
}
就很奇怪(害我检查半天
by OutsideR_ @ 2022-07-15 15:08:20
@cjihyy
请问sort的复杂度可以达到O(n)吗
by OutsideR_ @ 2022-07-15 15:08:48
@cjihyy 求最小值你不用擂台方法还排序一遍吗
by cjihyy @ 2022-07-15 15:09:56
害
by _Ad_Astra_ @ 2022-07-15 15:10:16
sort的复杂度本来就是
by cjihyy @ 2022-07-15 15:10:16
彳亍
by cjihyy @ 2022-07-15 15:10:38
本贴完结(主要是楼主过水
by Esawkm @ 2022-07-15 15:10:46
擂台
by 3blue1blue @ 2022-07-15 15:12:23
sort最快
by GoldenFishX @ 2022-07-15 15:16:41
求最小值排序干嘛 。。。
by Binah_cyc @ 2022-10-03 15:35:01
第一个加速可以过
快读,printf+O2就能过了