rt,第三篇题解使用的是 O(n2) 的做法,按道理来说也是不能通过测试的
在这个代码构造的数据下:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n=N-5;
int a[N];
int main(){
srand(time(0));
printf("%d\n",n);
n/=2;
for(int i=1;i<=n;i++)a[i]=(i-1)*20000+rand()%20000;
random_shuffle(a+1,a+1+n);
for(int i=1;i<=n;i++)printf("1 %d\n",a[i]);
random_shuffle(a+1,a+1+n);
for(int i=1;i<=n;i++)printf("2 %d\n",a[i]+rand()%5-2);
return 0;
}
跑出了 Time: 14831.0ms 的时长。他的题解下面也是可以看到别人质疑他这个代码是否超时了的。