zoukankan      html  css  js  c++  java
  • poj1083,基本互斥问题

    题意:南北两侧各有200个房间,两侧房间之间有一个走廊

      现在需要把桌子从这400个房间之中搬进搬出,每一张桌子需要10分钟时间,如果走廊因为有桌子搬运而占用,则需等待,求共需多少时间(分钟)将桌子搬完

    分析:由于走廊跨越200个房间,设置数组大小为200的数组,如从x出发搬到y,则把x到y的走廊全部+10,最后求该数组最大值,便是结果

    原因:若从x出发到y,中间有桌子也需要搬运,则冲突的路段势必会耽误10分钟时间,耽误时间的最大值便是结果(只要不冲突,同一时间可以搬运多张桌子)

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main1083 {
        
        public static int getMax(int[] a){
            
            int max = 0;
            for(int i=0;i<a.length;i++){
                if(a[i]>max){
                    max = a[i];
                }
            }
            return max;
            
        }
    
        public static void main(String[] args) {
            
            Scanner scanner = new Scanner(System.in);
            int t = scanner.nextInt();
            while(t-->0){
                int[] corridor = new int[200];
                int n = scanner.nextInt();
                for(int i=0;i<n;i++){
                    int x,y;
                    int start,end;
                    x = scanner.nextInt();
                    y = scanner.nextInt();
                    start = ((x > y? y : x)-1)/2;
                    end = ((x < y? y : x)-1)/2;
                    for(int j=start;j<=end;j++){
                        corridor[j] += 10;
                    }
                }
                System.out.println(getMax(corridor));
            }
            
        }
    
    }
  • 相关阅读:
    PyQt4 调用串口API pySerial API说明
    树的计算
    数据结构单链表实现
    虚函数和抽象函数
    静态内存和堆栈
    二叉树学习图片---郝斌
    汉诺塔
    循环队列的实现
    队列的实现
    栈的应用
  • 原文地址:https://www.cnblogs.com/tz346125264/p/7131232.html
Copyright © 2011-2022 走看看