首页 > 代码库 > poj1083,基本互斥问题
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)); } } }
poj1083,基本互斥问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。