求解:为什么两份代码一个TLE,一个AC了?
查看原帖
求解:为什么两份代码一个TLE,一个AC了?
271544
__polar_ice楼主2024/11/2 21:41

TLETLE10分代码:>-->评测点详情<<--

#include<bits/stdc++.h>
using namespace std;

int fruit[10005],n,p=0;
int swap(int &x,int &y)//这里的swap是自己定义的,而下面的代码是用的库里面的
{
	int t=x;x=y;y=t;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>fruit[i];
	sort(fruit+1,fruit+1+n);
	int head=1,ans=0;
	for(;head<n;){
		int tmp=fruit[head]+fruit[head+1];
		ans+=tmp;head++;
		int L=head;fruit[L]=tmp;
		while(fruit[L]>fruit[L+1]&&L<n)swap(fruit[L],fruit[L+1]),L++;
	}
	cout<<ans;
	return 0;
}

ACAC代码:>-->评测点详情<<--

#include<bits/stdc++.h>
using namespace std;

int fruit[10005],n,p=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>fruit[i];
	sort(fruit+1,fruit+1+n);
	int head=1,ans=0;
	for(;head<n;){
		int tmp=fruit[head]+fruit[head+1];
		ans+=tmp;head++;
		int L=head;fruit[L]=tmp;
		while(fruit[L]>fruit[L+1]&&L<n){
			swap(fruit[L],fruit[L+1]),L++;
		}
	}
	cout<<ans;
	return 0;
}

观察两份代码,仅能发现代码的差别为:一个是自定义的swapswap函数,另一个使用了库中函数。
求问:这两份代码的效率差别这么大吗(萌新求带)

2024/11/2 21:41
加载中...