最长上升子序列模型 AcWing 1010. 拦截导弹

原题链接

AcWing 1010. 拦截导弹

算法标签

DP 线性DP 最长上升子序列

思路


摘自该题解

代码

#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 1005, INF = 0x3f3f3f3f;
// f1[i]表示此时第i套导弹拦截系统所拦截的最后一个导弹的高度
int f[N], f1[N], a[N];
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();return s*w;
}
void put(int x) {if(x<0) putchar('-'),x=-x;if(x>=10) put(x/10);putchar(x%10^48);
}
vector<string> get(string str){vector<string> res;string word;for (auto c: str){if (c == ' '){res.push_back(word);word = "";}else word += c;}res.push_back(word);return res;
}
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);string s;getline(cin, s);vector<string> v=get(s);int ans=0, cnt=0, n=v.size();// cnt代表现有子序列长度rep(i, 0, n){a[i]=stoi(v[i]);}// 以i结尾下降序列rep(i, 0, n){f[i]=1;rep(j, 0, i){if(a[j]>=a[i]){f[i]=max(f[i], f[j]+1);}}ans=max(ans, f[i]);int k=0;while(k<cnt&&f1[k]<a[i]){k++;    } // a[i]开创一套新拦截系统   if(k==cnt){f1[cnt++]=a[i];  } // a[i]成为第k套拦截系统最后一个导弹高度else{f1[k]=a[i];    }}printf("%lld\n%lld\n", ans, cnt);
}

y总代码

#include <sstream>
#include <iostream>
#include <algorithm>using namespace std;const int N = 1010;int n;
int h[N], f[N], q[N];int main()
{string line;getline(cin, line);stringstream ssin(line);while (ssin >> h[n]) n ++ ;int res = 0, cnt = 0;for (int i = 0; i < n; i ++ ){f[i] = 1;for (int j = 0; j < i; j ++ )if (h[i] <= h[j])f[i] = max(f[i], f[j] + 1);res = max(res, f[i]);int k = 0;while (k < cnt && q[k] < h[i]) k ++ ;if (k == cnt) q[cnt ++ ] = h[i];else q[k] = h[i];}printf("%d\n", res);printf("%d\n", cnt);return 0;
}

tips

读入处理
输入流高级语法

    string line;getline(cin, line);stringstream ssin(line);while (ssin >> h[n]) n ++ ;

while (cin >> h[ ++ n]);

最长上升子序列模型 AcWing 1010. 拦截导弹相关推荐

  1. AcWing 1010 拦截导弹

    题目描述: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统. 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度. 某天,雷达捕捉到敌国 ...

  2. AcWing 1010. 拦截导弹

    好久没写啦, 今天学acwing打算分享一下拦截导弹这样一道lis题目, 方法就是dp和贪心 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统. 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能 ...

  3. 拦截导弹(dp【最长上升子序列模型】 + 贪心)

    AC Wing 1010 拦截导弹 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统. 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度 ...

  4. [AcWing] 1012. 友好城市(C++实现)最长上升子序列模型、较为特殊

    [AcWing] 1012. 友好城市(C++实现)最长上升子序列模型 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总 ...

  5. ACwing 895 - 最长上升子序列(最长上升子序列模型)

    给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少. 输入格式 第一行包含整数N. 第二行包含N个整数,表示完整序列. 输出格式 输出一个整数,表示最大长度. 数据范围 1 ≤ N ≤ ...

  6. 【动态规划专题】最长上升子序列模型

    题目 算法 A.AcWing 895. 最长上升子序列 模板 B.AcWing1017. 怪盗基德的滑翔翼 最长上升子序列/最长下降子序列 C.AcWing 1014. 登山 最长上升子序列/最长下降 ...

  7. C++---最长上升子序列模型---导弹防御系统(每日一道算法2023.3.5)

    注意事项: 本题的dp:"线性dp-最长上升子序列的长度" 本题的贪心(单调队列):"最长上升子序列模型-拦截导弹" 下面思路只讲如何运用这些东西来解这道题 强 ...

  8. 最长上升子序列(acwing 895 acwing 896 acwing1017)

    文章目录 理解 acwing 895 最长上升子序列 acwing 896 最长上升子序列2 acwing 1017 怪盗基德的滑翔翼 理解 是动态规划的题目,就是找一个数组中存在的连续的子序列. 最 ...

  9. 最长上升子序列模型之拦截导弹

    相关题目: 最长上升子序列 怪盗基德的滑翔翼 友好城市 登山 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统. 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是 ...

最新文章

  1. 跟小博老师一起学Servlet ——Servlet之HttpServletResponse
  2. 笑傲江湖霍建华版电子相册
  3. 一张图解释什么是遗传算法_一张图告诉你什么叫真正的满配m416,吃鸡玩家看懵了...
  4. Codeforces 313
  5. android按钮周围阴影,Android 上的按钮填充和阴影
  6. java e.getmessage() null,浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别...
  7. 梅特勒托利多电子秤显示EEP服务器错误,梅特勒-托利多电子天平常见故障的解决方法...
  8. 元学习算法MAML论文详解
  9. 可信计算理论与技术--远程证明技术
  10. android自动连接wifi,Android自动连接WiFi优先级规则,以及查看已连接WiFi的密码
  11. Rhino学习教程——1.2
  12. Python爬虫常用库requests、beautifulsoup、selenium、xpath总结
  13. 微信小程序 计算两点及多点间的距离+选择地图定位
  14. 磁盘管理器中不显示新增的硬盘
  15. LACP负载分担配置
  16. window.print打印部分无法显示
  17. 计算机视觉——KNN算法以及手势识别应用
  18. css怎么设置z坐标,CSS 定位(postion、z-index)
  19. Qt编写地图综合应用22-动态轨迹
  20. 硬件加密框架ocf cryptodev-linux介绍

热门文章

  1. L2-030 冰岛人 (25 分)(unordered_map)
  2. 初学UG编程的想法,看看你中了几条
  3. 关于ethereumjs-tx在私链签名报错问题
  4. Spring Cloud(4)
  5. 你的电脑如何与别的电脑通信
  6. STM32基于流量传感器对步进电机转速进行PID闭环控制
  7. Traefik 详解
  8. 通用协议(五)两方安全计算
  9. MM物料主数据的字段解释
  10. r5 Pro 5650U怎么样 相当于什么水平