• 最少拦截系统------LCS--------动态规划


    这是一道极好的题,会了这个应该说 最长递增子序列什么的  就有了另外一种思路了

    下面附上代码---应该仔细的看一下  那个  if判断

     1 #include<stdio.h>
     2 #include<algorithm>
     3 using namespace std;
     4 int a[1000],d[1000];
     5 int main()
     6 {
     7     int N,i,j,maxn;
     8     while(scanf("%d",&N)!=EOF)
     9     {
    10         for(i=1;i<=N;i++)
    11         {
    12             scanf("%d",&a[i]);         //
    13             d[i]=1;    //  假设 一个 导弹 可以解决  所有的
    14         }
    15         for(i=2;i<=N;i++)         //   一个一个导弹 向下传送
    16         {
    17             for(j=1;j<i;j++)         // 将这个导弹之前的  导弹全部 遍历一遍
    18             {
    19                 if(a[i]>a[j]&&d[i]<d[j]+1)   //   如果  现在的导弹的  高度 比 第 j 个导弹的  高度  要高    如果这一个导弹的  飞行高度 奇高 比之前的所有导弹的 高度都高
    20                 //  那么这个 导弹 也只需要一个 拦截系统即可  在刚才买的 防御系统之上再加一个 防御系统就好了不能  看到上一个拦不住 就再买看到下一个也拦不住 就又买
    21                     d[i]=d[j]+1;  // 在原来的基础之上  再买一个
    22             }
    23         }
    24         maxn=-1;
    25         for(i=1;i<=N;i++)
    26         {
    27             maxn=max(maxn,d[i]);
    28         }
    29         printf("%d
    ",maxn);
    30     }
    31 }

  • 相关阅读:
    深拷贝(deep clone)与浅拷贝(shallow clone)
    wait和notify
    Java实现简单RPC框架(转)
    Eclipse 搭建Struts2
    手写HashMap实践
    JVM 类加载器ClassLoader源码学习笔记
    Java 内存模型学习笔记
    Struts2 入门笔记
    struts2 拦截器
    Btrace 拦截时机
  • 原文地址:https://www.cnblogs.com/A-FM/p/5265942.html
Copyright © 2020-2023  润新知