求时间复杂度
  • 板块灌水区
  • 楼主stylus
  • 当前回复6
  • 已保存回复7
  • 发布时间2024/8/24 15:55
  • 上次更新2024/8/24 18:32:32
查看原帖
求时间复杂度
836448
stylus楼主2024/8/24 15:55

rt,1≤m,n,T≤10001\le m,n,T\le 1000,主要是为什么会超时。

#include<bits/stdc++.h>
#define int long long
using namespace std;
void read(int &x){
	x=0;bool f=0;char ch=getchar();
	while(ch>'9'||ch<'0'){
		if(ch=='-')f=1;
		ch=getchar();
	}do{x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}while(ch>='0'&&ch<='9');
	x=f?-x:x;
}
int T,n,a[1001],b[1001],m,sum;
signed main(){
	read(m),read(n),read(T);
	for(int i=0;i<m;i++)read(a[i]);
	for(int i=0;i<n;i++)read(b[i]);
	sort(a,a+m),sort(b,b+n);
	for(int i=0,j=0;i<m&&j<n;){
		if(abs(a[i]-b[j])<=T){
			if(abs(a[i]-b[j+1])<=T)j++;
			else if(abs(a[i+1]-b[j])<=T)i++;
			else i++,j++;
		}else sum++,i++,j++;
	}printf("%d",sum);
	return 0;
}
2024/8/24 15:55
加载中...