思路参考:点击打开链接

单调递增最长子序列

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
描述
求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4

输入
第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出
输出字符串的最长递增子序列的长度
样例输入
3
aaa
ababc
abklmncdefg
样例输出
1
3
7
#include <stdio.h>
#include <string.h>char str[10010];
int f[10010];int main (void)
{int i, len, n, j;scanf("%d", &n);while(n --){scanf("%s", str);len = strlen(str);f[0] = 1;int flag, k, temp;for(i = 1; i < len; i++){flag = 0;k = 0;temp = 0;for(j = i - 1; j >= 0; j --){if(str[i] > str[j]){flag = 1;if(f[j] > temp){temp = f[j];k = j;}}    }if(flag == 0)f[i] = 1;elsef[i] = f[k] + 1;}int min = 0;for(i = 0; i < len; i++){if(min < f[i])min = f[i];}printf("%d\n", min);}return 0;
}

拦截导弹

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述

某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于等于前一发的高度。某天,雷达捕捉到敌国导弹来袭。由于该系统还在试用阶段,所以只用一套系统,因此有可能不能拦截所有的导弹。

输入
第一行输入测试数据组数N(1<=N<=10)
接下来一行输入这组测试数据共有多少个导弹m(1<=m<=20)
接下来行输入导弹依次飞来的高度,所有高度值均是大于0的正整数。
输出
输出最多能拦截的导弹数目
样例输入
2
8
389 207 155 300 299 170 158 65
3
88 34 65
样例输出
6
2

这个题其实就是选择一个递减的最长子序列。思路和上面是一样。
#include <stdio.h>
#include <string.h>int a[25];
int dp[25];int main(void)
{int n, m, i, j;scanf("%d", &n);while(n --){scanf("%d", &m);for(i = 0; i < m; i++)scanf("%d", &a[i]);dp[0] = 1;int min, f;for(i = 1; i < m; i++){f = 0;min = 0;for(j = i - 1; j >= 0; j--){if(a[i] < a[j]){f = 1;if(dp[j] > min){min = dp[j];}}if(f == 0)dp[i] = 1;elsedp[i] = min + 1;}}min = 0;  for(i = 0; i < m; i++)  {  if(min < dp[i])  min = dp[i];  }  printf("%d\n", min); }return 0;
}

单调递增最长子序列 拦截导弹(nyoj 17 nyoj 79)相关推荐

  1. 最长递增子序列问题 nyoj 17单调递增最长子序列 nyoj 79拦截导弹

    一,    最长递增子序列问题的描述 设L=<a1,a2,-,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,-,akm>,其中k1< ...

  2. 单调递增最长子序列 - 从最长公共子序列到单调递增最长子序列

    最长公共子序列 的 算法思路 在这里 点击进入  将 代码稍微改动一下 就可以   ,   最长公共子序列  是两个 字符串求 公共子序列  , 可以将其中的 一个 改为 从 a 到 z  这样输入另 ...

  3. 动态规划之-----单调递增最长子序列(nyoj17)

    单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行 ...

  4. 单调递增最长子序列(动态规划)

    7-1 单调递增最长子序列 (20分) 设计一个 O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列. 输入格式: 输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字 ...

  5. nyoj-17 单调递增最长子序列(灵活应对)

    单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行 ...

  6. 单调递增最长子序列(南阳理工ACM)

    描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字 ...

  7. 24-单调递增最长子序列(多种解法总结)

    单调递增最长子序列 http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=17 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 ...

  8. NYOJ-单调递增最长子序列(dp)

    单调递增最长子序列 描述: 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入: 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行 ...

  9. NYOJ 单调递增子序列(二)

    单调递增子序列(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序 ...

最新文章

  1. 【位运算】解题报告:luoguP4310 绝世好题(位运算优化DP)
  2. 高金吉院士:让机器“自愈化”引领新科技变革
  3. solrCloud异常
  4. QQ 互联审核不通过问题的解决方法
  5. can3--socketcan之mcp251x.c
  6. K8S Learning(1)——简介
  7. c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...
  8. 记一次PHP服务器500错误的解决方法
  9. 永磁同步电机学习(一)
  10. 【AMESim】AMESim和Simulink联合仿真步骤
  11. 阿里云ACA、ACP、ACE认证考试常见问题
  12. Latex: 表格内换行
  13. PYTHON-音视频合并方法
  14. 前端用pdfjs实现预览PDF
  15. 手机DIY自制现身南瓜网
  16. python微控制器编程pdf_Python高性能编程 中文高清pdf完整版[17MB]
  17. 视频号如何打造爆款内容,封面、选题、文案三大维度丨国仁网络
  18. mysql 不会丢失数据吗_讨论MySQL丢失数据的几种情况
  19. 华为海康大华摄像头编译RTSP转RTMP和HTTPFLV
  20. SaaS产品SEO完整指南

热门文章

  1. 每日英语:As World's Kids Get Fatter, Doctors Turn To The Knife
  2. 【OpenCV-Python】5.OpenCV的图形用户界面窗口控制
  3. 内外网ping SNAT DNAT
  4. 《转》创新团队中常见的几种“怪人”
  5. 2019淘宝双十一活动前期营销分析
  6. 业务数据分析的8个流程与常用7个思路
  7. 色散介质中的脉冲展宽
  8. 程序报错未定义的引用
  9. 三年级计算机课可以画的图有,三年级上册画画图片
  10. 解决wps VBA安装的问题