当前位置: 首页 > news >正文

【基础】导弹拦截

一、描述

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

某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入导弹的枚数和导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,每个数据之间至少有一个空格),计算这套系统最多能拦截多少导弹。

二、输入描述

第1行有1个整数n,代表导弹的数量。(n<=1000)
第2行有n个整数,代表导弹的高度。(雷达给出的高度数据是不大于30000的正整数)

三、输出描述

输出这套系统最多能拦截多少导弹。

四、AC代码(详解见下文)
#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin>>n;int dh[n+10]; int dp[n+10];for(int i=0;i<n;i++){cin>>dh[i];dp[i]=1;}int maxx=0;for(int i=1;i<n;i++){for(int j=0;j<i;j++){if(dh[j]>dh[i]) dp[i]=max(dp[i],dp[j]+1);}maxx=max(maxx,dp[i]);}cout<<maxx<<endl;return 0;
}
五、详解

1.将题目要求我们要做的事抽象来看就是:寻找最长递减子序列。通俗点就是:在个数组中,找到最长的且递减的按输入顺序(可以跳过数字)的一列数。

2.知道了我们要干的事就可以很容易想到用动态规划来解决。

3.接下来就是找到转换方程式了,即dp[i]=max(dp[i],dp[j]+1)

4.代码详解

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;//n即为导弹数量cin>>n;//输入导弹数量int dh[n+10];//dh为导弹的高度int dp[n+10];//dp为可拦截的导弹数量for(int i=0;i<n;i++)//从0到n-1{cin>>dh[i];//输入每个导弹的高度dp[i]=1;//将每个dp的初始值赋值为1,因为至少可拦截当下导弹}int maxx=0;//设一个可拦截导弹数最大值,初始值为0for(int i=1;i<n;i++)//从1到n-1因为第0个dp长度只能为1即只能拦截第0个导弹{for(int j=0;j<i;j++)//从0到i-1因为dp是向前看且不能向当下和后面看{if(dh[j]>dh[i])//如果i前面有j导弹的高度比i的高度高{dp[i]=max(dp[i],dp[j]+1);//那么dp[i]就为dp[j]+1(因为是j最长加上当前导弹)和它的最大值}}maxx=max(maxx,dp[i]);//比较最大值}cout<<maxx<<endl;//输出最大值return 0;
}
六、另一种方式
#include<bits/stdc++.h>
using namespace std;
vector<int> nums;
int nums_size;
int max_tot=0;
int dfs(int first,int tot)
{	if(first==nums_size-1){max_tot=max(tot,max_tot);return max_tot;}for(int i=first+1;i<nums_size;i++){if(nums[i]<nums[first]){tot++;dfs(i,tot);tot--;}}max_tot=max(tot,max_tot);return max_tot;
}
int main()
{int n;cin>>n;int x;while(cin>>x){nums.push_back(x);if(cin.get()=='\n') break;	} nums_size=nums.size();int max_cd=0;for(int i=0;i<nums_size;i++){max_cd=max(max_cd,dfs(i,1));}cout<<max_cd;return 0; 
}

http://www.dtcms.com/a/538297.html

相关文章:

  • 在linux系统上用什么做网站菏泽公司网站建设
  • Linux的进程认识上
  • 网站开发的基本流程和步骤网站建设环境配置
  • 上海著名网站设计公司本地的wordpress地址
  • 文本向量化与 Pinecone 向量存储:RAG性能提升指南
  • 清远网站制作公司淘客做网站怎么备案
  • 网站首页制作方案西安网站建设网站推广
  • 网站消耗流量长沙网站 建设推广世云网络
  • 如何改进网站服务建设和管理寿光网站优化
  • 怎样添加网站地图宿迁专业网站建设公司
  • 设计商城网站建设琼筑网站是哪家做的
  • 会搭建网站找什么工作室温州网页制作模板
  • Python基于实战练习的知识点回顾
  • 站群服务器是什么意思主流网站开发工具
  • Java的throws异常处理
  • 想在网上做外卖 上什么网站好站长工具2023最新国产
  • 重庆塔吊证查询网站一个网站放两个vps
  • 收录很快的推广网站北京定制公交app
  • 电子电力技术的软开关变换器学习记录分享2
  • 普陀区网站制作网站群建设 实现了
  • 国家示范校建设专题网站全国公共资源交易中心
  • 4.1进行网站建设与推广太原网站推广教程
  • ROS2系列 (1) : 常用环境变量解析与实践
  • 舆情分析报告格式济南网站搜索优化
  • 5.4静态变量和静态方法
  • 蓝蜂MQTT网关保障20个户外泵站数据,故障率降70%
  • 实现Docker登录状态定时自动失效的通用方法
  • 广西网站建设推荐全文搜索引擎有哪些
  • 打开无忧管理后台网站厦门网站优化
  • 科技网页制作模板电商网站目录优化