zoukankan      html  css  js  c++  java
  • 51nod贪心算法入门-----独木舟问题

    独木舟问题

    n个人,已知每个人体重,独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟?

    分析:按照人的体重排序,最轻的人跟最重的人尽量安排在一条船上,如果超过就安排最重的.

     1 #include<stdio.h>
     2 #include<iostream>
     3 #include<algorithm>
     4 using namespace std;
     5 int main(){
     6     int n,m;
     7     while(scanf("%d%d",&n,&m)==2){
     8         int i,j,ans=0;
     9         int a[10001];
    10         for(i=0;i<n;i++){
    11             scanf("%d",&a[i]);
    12         }
    13         sort(a,a+n);
    14         j=n-1;
    15         i=0;
    16         while(i<j){
    17             if(a[i]+a[j]<=m){
    18                 ans++;
    19                 i++;
    20                 j--;
    21             }
    22             else{
    23                 ans++;
    24                 j--;
    25             }
    26         }
    27         if(i==j)
    28             ans++;
    29         printf("%d
    ",ans);
    30     }
    31 }
  • 相关阅读:
    寒假学习第九天
    寒假学习第八天
    寒假学习第七天
    寒假学习第六天
    寒假学习第五天
    寒假学习第四天
    寒假学习第三天
    寒假学习第二天
    寒假学习第一天
    阅读笔记
  • 原文地址:https://www.cnblogs.com/OMG-By/p/5297616.html
Copyright © 2011-2022 走看看