nyoj 71 独木舟上的旅行

来源:互联网 发布:去哪儿打车软件 编辑:程序博客网 时间:2024/04/26 07:28

http://acm.nyist.net/JudgeOnline/problem.php?pid=71

贪心,乘船问题。

用两个下标i,和j分别表示最轻的人和最重的人,每次现将j往左移动,知道i和j能够做一条船,然后i++,j--,并重复上述操作。


#include <iostream>#include <cstring>#include <algorithm>using namespace std;int a[310];int main(){int s;cin>>s;while(s--){int w,n;cin>>w>>n;memset(a,0,sizeof(a));for(int i=0;i<n;i++)cin>>a[i];sort(a,a+n);int i=0,j=n-1;int num=0;for(;;){if(i==j){num++;break;}else if(j-i==1&&a[i]+a[j]>w){num+=2;break;}else if(j-i==1&&a[i]+a[j]<=w){num++;break;}while(a[i]+a[j]<=w&&j-i>=2){num++;i++;j--;}if(j-i>1){num++;j--;}}cout<<num<<endl;}return 0;}


原创粉丝点击