poj 1083

 1 import java.io.BufferedReader;
 2 import java.io.InputStreamReader;
 3 import java.util.Arrays;
 4 
 5 public class Main {
 6 
 7     // 定义一个200的数组来表示过道,没经过一次都加一,然后排序,最大值*10就是结果
 8     public static void main(String[] args) throws Exception {
 9         BufferedReader reader = new BufferedReader(new InputStreamReader(
10                 System.in));
11         int numOfTestCase = Integer.parseInt(reader.readLine());
12         for (int i = 0; i < numOfTestCase; i++) {
13             int[] times = new int[200];
14             int numOfTables = Integer.parseInt(reader.readLine());
15             for (int j = 0; j < numOfTables; j++) {
16                 String line = reader.readLine();
17                 String[] nums = line.split(" ");
18                 int t1 = Integer.parseInt(nums[0]);
19                 int t2 = Integer.parseInt(nums[1]);
20                 if(t1 > t2){
21                     int tmp = t2;
22                     t2 = t1;
23                     t1 = tmp;
24                 }
25                 int s1 = 0;
26                 if (t1 % 2 != 0) {
27                     s1 = t1 / 2;
28                 } else {
29                     s1 = t1 / 2 - 1;
30                 }
31                 int s2 = 0;
32                 if (t2 % 2 != 0) {
33                     s2 = t2 / 2;
34                 } else {
35                     s2 = t2 / 2 - 1;
36                 }
37                 for (int k = s1; k <= s2; k++) {
38                     times[k]++;
39                 }
40             }
41             Arrays.sort(times);
42 
43             System.out.println(times[199] * 10);
44         }
45     }
46 }

需要注意:

1. 给出的数据中s不一定大于t

2. 定义一个数组表示走廊,每次被经过都++,最后sort,最大值*10

原文地址:https://www.cnblogs.com/feiling/p/2746569.html