NYOJ 71 独木舟上的旅行 贪心算法

思路  sort一遍  从首位开始往中间加   

1.两个人体重和小于船承重  船数量加一    这两个人就算安排好了

2.两个人体重和大于船承重  船数量加一    只安排重的那个人 ,轻的再安排



#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <string.h>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
typedef long long ll;
using namespace std;
int main(){
    int t;
 	int n,m,sum;
    int a[10000];
    cin>>t;
    while(t--){
    cin>> m >> n;
    sum=0;
    for(int i=0;i<n;i++){
    		cin>>a[i];
    }
    sort(a, a+n);
    int p,q;
    p=0;
    q=n-1;
    while(p<=q){
        if(a[p]+a[q]<=m){sum++;q--;p++;}
        else{sum++;q--;}
        
    }
    printf("%d\n",sum);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值