思路:简单的动态规划 判定 当前满足要求可拦截的导弹数 则遍历 前面 比自身高的 导弹 dp[i] 表示 第i个导弹 前面满足要求可拦截的导弹数 */ 代码语言:javascript 复制 #include<stdio.h>intmain(){int m,n,max,i,j,a[110],dp[110];scanf("%d",&n);while(n--){scanf("%d",&m);for(i=0;i<...
{scanf("%d",&a[i]); dp[i]=1;//初始都为 1 表示 只能 拦截本身}for(i=0;i<m;i++)//当前数据ifor(j=0;j=a[i]&&dp[j]>=dp[i])//若 前面的 某导弹比当前导弹 高度高dp[i]=dp[j]+1;// 并且 可以拦截的导弹多则更新 加上本身max=0;for(i=0;i<m;i++)if(dp[i]>max) max...
简单C程序题目 拦截导弹问题某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都
#include<iostream> usingnamespacestd; intn; inth[1005];//记录导弹高度 ints[1005];//记录每个系统当前可拦截最高高度 intmain() { while(cin>>h[n]) n++; intcnt=1;//记录系统数 s[cnt]=h[0];//初始化,把第一个导弹高度录入第一个系统 for(inti=1;i<n;i++)//遍历导弹 { intp=0;//...
输出最多能拦截的导弹数目,每组输出只有一行,包含一个整数,表示最多能拦截多少枚导弹。 样例输入 2 8 389 207 155 300 299 170 158 65 3 88 34 65 样例输出 6 2 思路:简单的动态规划判定 当前满足要求可拦截的导弹数 则遍历 前面 比自身高的 导弹 ...
经典动态规划 导弹拦截(简单)---C语言——菜鸟级 /*题目描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于等于前一发的高度。某天,雷达捕捉到敌国导弹来袭。由于该系统还在试用阶段,所以...
1. 直接说了,最多能拦截的导弹的高度是不能超过上一次的高度,所以容易能想到最多能拦截的导弹数量就是所给序列的最长不上升子序列长度(并不是最长下降子序列)。而要拦截所有导弹需要的系统数目就是所给序列的最长上升子序列的长度(也就是把最长上升子序列中每一个数字分到不同的组里面即可),另外需要注意这个必...
vector<int> a;int gaodu;while(cin>>gaodu){ a.push_back(gaodu);}//现在你就得到了一个包含所有输入数据的vector容器a
题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截 系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。...某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试 用阶段,所以只有一套系统,因
再加上复杂动态规划能力,它还能躲避拦截,自选路线攻击目标,简直像个会思考的大脑袋导弹。更可怕的是,美国空军算过账,一次行动理论上可以投放480枚以上这种家伙你想象一下,那画面是不是有点魔幻?不过,我跟你讲啊,这事儿可不能光看表面风光。一支箭再锋利,也要看弓硬不硬、靶子稳不稳。换句话说,就是...