问题描述
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
void boat(float *a,int n,float C)
{
sort(a,a+n);
int i=0;
int j=n-1;
int boatsum=0;
while(i<=j)
{
if(i==j)
{
boatsum++;
break;
}
if(a[i]+a[j]<=C)
{
boatsum++;
i++;
j--;
}
else//j一个人坐一辆船;
{
boatsum++;
j--;
}
}
}
int main()
{
while(1)
{
int n;
cin>>n;
float C;
cin>>C;
float a[n];
memset(a,0,sizeof(a));
for(int i=0;i<n;i++)
cin>>a[i];
boat(a,n,C);
}
}
船只配对算法
本文介绍了一个船只配对算法,该算法使用C++实现,通过排序和双指针技术来计算最少需要多少船只才能将所有的人安全运过河,前提是船只载重有限制。
942

被折叠的 条评论
为什么被折叠?



