poj 1887 Testing the CATCHER

曾经的WF题,如今我一个小菜鸟都能做出来了,可见时代在进步啊。这题用nlogn算法做的,由于不知道有多少个数,所以数组要开大些,反正我随便开了一个是够了。

 1 #include <stdio.h>
 2 #include <string.h>
 3 int c[2000],len=-1;
 4 int find(int t)
 5 {
 6     int le=0,ri=len,mid;
 7     while(le <= ri)
 8     {
 9         mid = (le+ri) >> 1;
10         if(c[mid] == t)
11             return mid;
12         if(c[mid] < t)
13             ri = mid - 1;
14         else le = mid + 1;
15     }
16     return le;
17 }
18 int main()
19 {
20     int t,n,m=0;
21     c[0] = 0;
22     while(scanf("%d",&t))
23     {
24         if(t == -1)
25             if(len == -1) return 0;
26             else
27             {
28                 if(m++) printf("\n");
29                 printf("Test #%d:\n  maximum possible interceptions: %d\n",m,len+1);
30                 c[0] = 0;
31                 len = -1;
32             }
33         else
34         {
35             n = find(t);
36             c[n] = t;
37             if(n > len) len = n;
38         }
39     }
40     return 0;
41 }
原文地址:https://www.cnblogs.com/lzxskjo/p/2600164.html