zoukankan      html  css  js  c++  java
  • 独木舟上的旅行

    独木舟上的旅行

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:2
     
    描述

    进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果。

     
    输入
    第一行输入s,表示测试数据的组数;
    每组数据的第一行包括两个整数w,n,80<=w<=200,1<=n<=300,w为一条独木舟的最大承载量,n为人数;
    接下来的一组数据为每个人的重量(不能大于船的承载量);
    输出
    每组人数所需要的最少独木舟的条数。
    样例输入
    3
    85 6
    5 84 85 80 84 83
    90 3
    90 45 60
    100 5
    50 50 90 40 60
    
    样例输出
    5
    3
    3

    代码:
    package acm71;
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		int group = input.nextInt();
    		for (int i = 0;i<group;i++) {
    			int weight = input.nextInt();
    			int number = input.nextInt();
    			int array[] = new int[number];
    			for (int j = 0;j<array.length;j++) {
    				array[j] = input.nextInt();
    			}
    			int people = solution(array,weight,number);
    			System.out.println(people);
    		}
    	}
    
    	private static int solution(int[] array,int weight,int number) {
    		//排序
    		Arrays.sort(array);
    		//1:首先判断里面
    		int result = 0;
    		int i = 0;
    		int j = number-1;
    		while (i <= j) {
    			if (array[i] + array[j] > weight) {
    				j--;
    				result++;
    			}else{
    				i++;
    				j--;
    				result++;
    			}
    		}
    		return result;
    	}
    	
    }
    

      

  • 相关阅读:
    数据库中Schema(模式)概念的理解
    debug --- 使用Eclipse
    pgsql 相关函数
    浏览器显示页面排版错误
    jqury 属性
    节点互换需要克隆
    mysql数据库允许远程访问
    request与response的编码和解码
    文本和属性 radio,checkbox,select
    js 和 JQuery 获取iframe的父子值
  • 原文地址:https://www.cnblogs.com/airycode/p/5539503.html
Copyright © 2011-2022 走看看