题目:http://poj.org/problem?id=1887

题目本质:求最长递减子序列的长度。

状态转移方程:

d[i] = max(1,d[j]+1), 0<=j < i

代码:

 1 #include <stdio.h>
 2 #define N 5000
 3 int missile[N];
 4 int ans[N];
 5
 6 int main()
 7 {
 8   int first,n,i,j,max,c=1;
 9
10      while( scanf("%d",&first) )
11      {
12           if(-1 == first) break;
13           missile[0] = first;
14
15            i = 1;
16            while(scanf("%d",&first))
17            {
18               if(-1 == first) break;
19               missile[i++] = first;
20            }
21            n = i;
22
23            max = 1;
24            ans[0] = 1;
25            for(i = 1 ; i < n ; ++i)
26            {
27                ans[i] = 1 ;
28                for(j = 0 ; j < i ; ++j)
29                if(missile[j] > missile[i] && ans[j] + 1 > ans[i] )
30                ans[i] = ans[j] + 1;
31
32                if(ans[i] > max) max = ans[i];
33            }
34
35            printf("Test #%d:\n",c++);
36            printf("  maximum possible interceptions: %d\n\n",max);
37
38      }
39
40  // system("pause");
41   return 0;
42 } 

转载于:https://www.cnblogs.com/HpuAcmer/archive/2012/05/08/2490909.html

POJ 1887 (DP)相关推荐

  1. POJ 3017 DP + 单调队列 + 堆

    题意:给你一个长度为n的数列,你需要把这个数列分成几段,每段的和不超过m,问各段的最大值之和的最小值是多少? 思路:dp方程如下:设dp[i]为把前i个数分成合法的若干段最大值的最小值是多少.dp转移 ...

  2. POJ 1159 (DP)

    题目:http://poj.org/problem?id=1159 思路: 找出原串的最长回文子串,当然这里说的回文子串可以不连续.用原串的长度减去最长回文子串的长度即可得出结果. 设原串a[5001 ...

  3. POJ 1037 DP

    题目链接: http://poj.org/problem?id=1037 分析: 很有分量的一道DP题!!! (参考于:http://blog.csdn.net/sj13051180/article/ ...

  4. POJ 1661 DP

    Help Jimmy Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11071   Accepted: 3607 Descr ...

  5. POJ 3666 dp

    题意 传送门 POJ 3666 基本思路是对 N 个位置枚举所有可能高度,并 dp 求最大值.可能高度取 N 个位置的高度即可,排序以方便顺序 dp.对于升序的情况 dp[i][j]=max{dp[i ...

  6. POJ 3666(DP)

    题目链接:http://poj.org/problem?id=3666 题目大意:给一个串,要求修改最少使得串满足非递增或非递减 题目思路:刚开始没想到,后来经学长提醒如果串里的数字变1000可以怎么 ...

  7. POJ 3257 DP

    题意: 思路: 用vector存上本出发点能到的地方&成本&有趣指数(用结构体保存) 然后DP就好了 f[i][j]表示到了i 成本为j的有趣指数最大是多少 f[vec[i][k].e ...

  8. poj 2392 dp 不是很懂哎!!!Space Elevator

    大意:有K种block去建塔,每种每个都有一个高度H,用了当前的block塔的高度不能超出a,和每种的数量.求塔最高能建多高. 分析:这题就是一个多重背包,但有一点变动,必须先以a从小到大排序,因为如 ...

  9. poj 2346(DP)

     题意:n位数,满足前n/2个数字之和同后n/2个数字之和相同的数一共有多少个? 解题思路:dp[i][j]表示前i个数的和为j时,有多少个: 递推关系:dp[i][j] += dp[i-1][k ...

最新文章

  1. Google Map API使用详解(七)——加载Google Map API URL的详细解读
  2. 从物联网设备生命周期理解Apple Homekit框架
  3. 已知序列求蝶形运算_(数字信号处理选择题.doc
  4. 嵌入式linux字符设备驱动
  5. 对于小波分解和傅立叶分解的理解
  6. HAXM 6.0.5显示不兼容Windows
  7. Android Wifi控制方法总结
  8. php生成流水号,生成唯一流水号
  9. 使用phpStudy搭建74cms(详)
  10. 新海诚没有参与制作的作品_还未开始!新海诚的下一部作品还是白纸
  11. 2021年服创国赛参赛小结
  12. codeforces日常训练 C. Cutting Out - 二分搜索答案
  13. mysql查询所有图书信息_PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
  14. 用ServletContext做一个简单的聊天室
  15. Java导出excel那些事
  16. 研究QQ、Fetion、Msn的socket连接
  17. 计算机网络安装维护经验,宽带维护经验和安装技巧
  18. 计算机硬件清理步骤,怎么清理电脑内存(如何深度清理电脑内存步骤)
  19. NS3 遇到的BUG
  20. python中return cls用法详解

热门文章

  1. 递归法:快速掌握递归核心方法
  2. Unity3D之UGUI基础10:画布的三种模式
  3. 八种常用排序算法参考
  4. bzoj 4017: 小Q的无敌异或(线段树)
  5. 置换群burnside引理(bzoj 1004: [HNOI2008]Cards)
  6. Wiener维纳滤波基本原理及其算法实现
  7. 文档协作编辑 ONLYOFFICE 部署和使用教程
  8. python机器学习库sklearn——线性回归
  9. matlab2c使用c++实现matlab函数系列教程-rot90函数
  10. Echarts数据可视化series-bar柱形图详解,开发全解+完美注释