杭电1257

方法一:存好导弹高度,依次寻找当前系统可以发射的全部导弹,用完的标记,累加得出答案(费时)

 1 #include<stdio.h>
 2 int a[1000000];
 3 int main()
 4 {
 5     int n,i,maxn,j,ans;
 6     while(~scanf("%d",&n))
 7     {
 8         for(i=0; i<n; ++i)
 9             scanf("%d",a+i);
10         for(i=ans=0; i<n; ++i)
11         {
12             if(a[i])
13             {
14                 ans++;
15                 maxn=a[i];
16                 a[i]=0;
17                 for(j=i+1; j<n; ++j)
18                     if(a[j]&&a[j]<=maxn)
19                     {
20                         maxn=a[j];
21                         a[j]=0;
22                     }
23             }
24         }
25         printf("%d\n",ans);
26     }
27 }

方法二:开一个数组用来存每一个已开系统的拦截上限,以后每个导弹发射时查找此数组,找到其中最适合的系统,并更新上限,找不到时重新开一个系统(数度快)

 1 #include<stdio.h>
 2 int a[1000000],dd[1000000];
 3 int main()
 4 {
 5     int n,i,minj,j,k,ans;
 6     while(~scanf("%d",&n))
 7     {
 8         for(i=ans=k=0; i<n; ++i)
 9         {
10             scanf("%d",a+i);
11             if(!i)
12             {
13                 ans++;
14                 dd[k]=a[i];
15             }
16             else
17             {
18                 for(j=minj=0; j<=k; ++j)
19                 {
20                     if(dd[j]==a[i])
21                     {
22                         minj=j;
23                         break;
24                     }
25                     if(dd[j]>=a[i])
26                     {
27                         if(dd[minj]>=a[i])
28                         {
29                             if(dd[j]<dd[minj])
30                                 minj=j;
31                         }
32                         else
33                             minj=j;
34                     }
35                 }
36                 if(dd[minj]<a[i])
37                 {
38                     ans++;
39                     dd[++k]=a[i];
40                 }
41                 else
42                     dd[minj]=a[i];
43             }
44         }
45         printf("%d\n",ans);
46     }
47 }

 

posted @ 2016-11-29 14:12  Posase  阅读(320)  评论(0编辑  收藏  举报