请帮忙找找错误!
查看原帖
请帮忙找找错误!
805785
hujiayou2012楼主2025/7/26 16:51

结果:1个AC,4个WA,5个TLE。

不会动态规划。

思路:每两趟为一组。

第一趟:选最快的两个人去,最快的一个人回。

第二趟:选最慢的两个人去,最快的一个人回。

以此类推。

#include<bits/stdc++.h>
using namespace std;
int n,t,c,i;
vector<int> a,b;
int main(){
	scanf("%d",&n);
	for(int j = 0;j < n;j++){
		scanf("%d",&c);
		a.push_back(c);
	}
	while(a.size() > 3){
		sort(&a[0],&a[a.size()]);
		t += a[1];
		b.push_back(a[1]);
		b.push_back(a[0]);
		a.erase(a.begin());
		a.erase(a.begin());
		sort(&b[0],&b[b.size()]);
		t += b[0];
		a.push_back(b[0]);
		b.erase(b.begin());
		sort(&a[0],&a[a.size()]);
		t += a.back();
		b.push_back(a.back());
		a.pop_back();
		b.push_back(a.back());
		a.pop_back();
		sort(&b[0],&b[b.size()]);
		t += b[0];
		a.push_back(b[0]);
		b.erase(b.begin());
	}
	if(a.size() == 3) t += a[0]+a[1]+a[2];
	else t += a[1];
	printf("%d",t);
	return 0;
}

谢谢各位大佬!

2025/7/26 16:51
加载中...