zoukankan      html  css  js  c++  java
  • 基本算法思维——学生郊游

    问题

    X学校最近组织了一场春游踏青活动,向Y公司租赁汽车运输学生。这次参加活动的总共有n个班级,
    第i班总共有ai名学生,每辆车最大乘车人数为m,满足m>a1, a2, ..., an。乘车时必须按照班级排列顺序进行乘车,
    不能调整班级顺序进行拼车。为保证同一个班级的学生在同一辆车上,如果当前汽车装完上一个班级后,下一个班级所有同学无法装下,
    那么当前车开走使用下一辆车。问最少需要多少辆车才能把所有学生运完?

    解决

    (1)问题核心是一个班的人不能被拆开,必须在同一辆车。

    (2)乘车顺序必须按照班级顺序,所以班级上车顺序为输入有序。

    code

     1 import java.util.Scanner;
     2 
     3 public class Main {
     4     public static void main(String args[]) {
     5         Scanner s = new Scanner(System.in);
     6         int n = s.nextInt(); //班级数
     7         int m = s.nextInt();  //最大乘车数
     8         int ar[] = new int[n];
     9         int count = 0; //记录车的数量
    10         
    11         //输入班级
    12         for(int i=0;i<n;i++) {
    13             ar[i] = s.nextInt();
    14         }
    15         int temp; //记录当前上车人数
    16         for(int i=0;i<n;) {
    17             count++; 
    18             temp = ar[i];
    19             int j;
    20             for(j=i+1;j<n;j++) {
    21                 //为true时,表示多班级可以做同一辆车
    22                 if((temp+ar[j])<=m) {  
    23                     temp+=ar[j];
    24                 }else {
    25                     break;
    26                 }
    27             }
    28             //更新还未上车班级的起始位置
    29             i = j;
    30         }
    31         System.out.println(count);
    32     }
    33 
    34 }
  • 相关阅读:
    php 框架选择
    转:从框架看PHP的五种境界及各自的薪资待遇(仅限于二三线城市,一线除外)
    百度云怎样提升下载速度
    .net体系与java体系
    绘制3D的js库
    Canvas游戏计算机图形教程
    Unity Manual 用户手册
    在windows系统下安装oracle 11g
    Three.js学习笔记
    php面试题之二——数据结构和算法(高级部分)
  • 原文地址:https://www.cnblogs.com/dream-flying/p/12794461.html
Copyright © 2011-2022 走看看