POJ 1083 -- Moving Tables

POJ 1083 -- Moving Tables

   区间线性覆盖和线性查找.
 1 /* http://poj.org/problem?id=1083 */
 2 
 3 #include <iostream>
 4 #include <string>
 5 using namespace std;
 6 
 7 int main() {
 8     ios::sync_with_stdio(false);
 9   const int Total = 200;
10  int room[Total + 2], T;
11    cin >> T;
12  while (T--) {
13      int N, s, t, ans;
14          memset(room, 0, sizeof(room));
15          cin >> N;
16         while (N--) {
17                     cin >> s >> t;
18             if (t < s) { int r = s; s = t; t = r; }
19             if (s == t) continue;
20                     s = s % 2 == 0 ? (s >> 1) : (s >> 1) + 1;
21                      t = t % 2 == 0 ? (t >> 1) : (t >> 1) + 1;
22             for (int i = s; i <= t; ++i) ++room[i];
23         }
24         ans = room[1];
25      for (int i = 2; i <= Total; ++i) if (room[i] > ans) ans = room[i];
26         ans *= 10;
27         cout << ans << endl;
28     }
29     return 0;
30 }
31 

你可能感兴趣的:(POJ 1083 -- Moving Tables)