zoukankan      html  css  js  c++  java
  • 杭电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
    ",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
    ",ans);
    46     }
    47 }
  • 相关阅读:
    jQuary学习の三の效果展示
    jQuary学习の二の语法
    jQuary学习の一の初期准备
    js备战春招の四のjs函数
    javascript JSON
    js备战春招の四の表单
    js备战春招の四の严格模式
    290. Word Pattern--Easy
    546. Remove Boxes--Hard
    牛客网-华为-2020届校园招聘上机考试-3
  • 原文地址:https://www.cnblogs.com/qq188380780/p/6113417.html
Copyright © 2011-2022 走看看