(怪盗基德的滑翔翼)(最长上升子序列)[通俗易懂]

(怪盗基德的滑翔翼)(最长上升子序列)[通俗易懂]原题链接怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置也被柯南踢出的足球破坏了。不得已,怪盗基德只能操作受损的滑翔翼逃脱。假设城市中一共有N幢建筑排成一条线,每幢建筑的高度各不相同。初始时,怪盗基德可以在任何一幢建筑的顶端。他可以选择一个方向逃跑,但是不能中途改变方向

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原题链接

怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。

而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。

有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置也被柯南踢出的足球破坏了。

不得已,怪盗基德只能操作受损的滑翔翼逃脱。

假设城市中一共有N幢建筑排成一条线,每幢建筑的高度各不相同。

初始时,怪盗基德可以在任何一幢建筑的顶端。

他可以选择一个方向逃跑,但是不能中途改变方向(因为中森警部会在后面追击)。

因为滑翔翼动力装置受损,他只能往下滑行(即:只能从较高的建筑滑翔到较低的建筑)。

他希望尽可能多地经过不同建筑的顶部,这样可以减缓下降时的冲击力,减少受伤的可能性。

请问,他最多可以经过多少幢不同建筑的顶部(包含初始时的建筑)?

输入格式
输入数据第一行是一个整数K,代表有K组测试数据。

每组测试数据包含两行:第一行是一个整数N,代表有N幢建筑。第二行包含N个不同的整数,每一个对应一幢建筑的高度h,按照建筑的排列顺序给出。

输出格式
对于每一组测试数据,输出一行,包含一个整数,代表怪盗基德最多可以经过的建筑数量。

数据范围
1≤K≤100,
1≤N≤100,
0<h<10000
输入样例:

3
8
300 207 155 299 298 170 158 65
8
65 158 170 298 299 155 207 300
10
2 1 3 4 5 6 7 8 9 10

输出样例:

6
6
9
#include<bits/stdc++.h>
#define x first
#define y second
#define send string::nops
using namespace std;
typedef long long ll;
const int N = 1e3 + 10;
const int M = 3 * N;
const int INF = 0x3f3f3f3f;
typedef pair<int,int> PII;
int a[N],fup[N],fdown[N];
int main(){ 
   
    int T,n,res = 0;
    cin>>T;
    while(T--){ 
   
        cin>>n;
        memset(fup,0,sizeof fup);
        memset(fdown,0,sizeof fdown);
        res = 0;
        for(int i = 0;i < n;i ++){ 
   
            cin>>a[i];
            fup[i] = fdown[i] = 1;
            for(int j = 0;j < i;j ++){ 
   
                if(a[i] > a[j])fup[i] = max(fup[i],fup[j] + 1);
                if(a[i] < a[j])fdown[i] = max(fdown[i],fdown[j] + 1);
            }
            res = max(res,max(fup[i],fdown[i]));
        }
        cout<<res<<endl;
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168792.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 圆柱体积立方公式怎样计算_圆台体积公式

    圆柱体积立方公式怎样计算_圆台体积公式圆柱体积计算公式计算方法及例题圆柱体积公式是用于计算圆柱体体积的公式。圆柱体积=πr²h=s底h。圆周率(π)是圆的周长与直径的比值,一般用希腊字母π表示,是一个在数学及物理学中普遍存在的数学常数。1圆柱体积公式圆柱体积v=πr²h=sh(S是底面积,h是高)π是圆周率,一般取3.14r是圆柱底面半径h为圆柱的高还可以是v=1/2ch×r侧面积的一半×半径圆周率(π)是圆的周长与直径的比值,一般用…

    2022年9月20日
    3
  • android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序

    android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序Android在界面跳转的时候,比如从ActivityA跳回ActivityB,并不是先执行A的onDestroy,而是执行完A的onPause之后就立即跳回ActivityB里的onResume。在执行了ActivityB的onResume之后一两秒甚至更长一点的时间才执行ActivityA里的onDestroy。这样的处理机制应该是为了能够立即响应用户的操作。但是这样子的话,如…

    2022年5月5日
    104
  • Java Agent字节码增强技术实现链路追踪[通俗易懂]

    Java Agent字节码增强技术实现链路追踪[通俗易懂]javaagent

    2025年7月16日
    4
  • reaver test[通俗易懂]

    reaver test[通俗易懂]airmon-ngairmon-ngstartwlan0airodump-ngmon0apt-getupdateapt-getinstallreaverreaver-imon0-b28:2C:B2:5E:79:14-vvreaver-imon0-b28:2C:B2:5E:79:14-vv-a-v-S-x2…

    2022年5月4日
    47
  • python字符串查找特定字符_神器是啥意思

    python字符串查找特定字符_神器是啥意思TheFuzz库对应的源码链接为https://github.com/seatgeek/thefuzz。需要说明的是,TheFuzz是FuzzyWuzzy的升级版本,后者在2020年后已经不再进行更新,所以请及时切换到TheFuzz库。1.安装方法2.两大模块fuzz和process2.1模块一:fuzz2.2模块二:process2.2.1process.extractOne(提取出相似度最高的选择)2.2.2process.extract(提取出相似度高的多个选择)3.实战案例

    2022年8月21日
    7
  • docker-jenkins部署cmake自动构建[通俗易懂]

    docker-jenkins部署cmake自动构建[通俗易懂]docker部署jenkins具体部署参考链接dockerrun-itd-p8080:8080-p50000:50000–namejenkins–privileged=true-v/var/jenkins_home:/var/jenkins_homejenkins/jenkins工程配置源码管理:添加git地址通过URL访问触发构建构建脚本这里的$WORKSPACE对应docker映射到本地的目录/var/jenkins_home/workspace/te

    2022年6月1日
    142

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号