NYOJ题目168房间安排
------------------------------------------------
其实就是计算一下时间线上重叠部分的最大值是多少
一个很容易想到的办法就是模拟,如下
AC代码:
1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(System.in); 8 9 int times=sc.nextInt(); 10 while(times-->0){ 11 12 int n=sc.nextInt(); 13 int book[]=new int[10001]; 14 for(int i=0;i<n;i++){ 15 int a=sc.nextInt(); 16 int b=sc.nextInt(); 17 int c=sc.nextInt(); 18 while(c>0) book[b+c--]+=a; 19 } 20 int max=Integer.MIN_VALUE; 21 for(int i=1;i<book.length;i++) max=Math.max(max,book[i]); 22 System.out.println(max); 23 } 24 25 } 26 27 }