怪盗基德的滑翔翼(最长上升子序列)「建议收藏」

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

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

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

最长上神子序列(nlogn)

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

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

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

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

假设城市中一共有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 = 1e4 + 10;
const int M = 3 * N;
const int INF = 0x3f3f3f3f;
typedef pair<int,int> PII;
vector<int> fup,fdown,a;
int len_up,len_down;
int main(){ 
   
    int T,n,x;
    cin>>T;
    while(T --){ 
   
        cin>>n;
        a.clear();
        fup.clear();
        fdown.clear();
        for(int i = 0;i < n;i ++){ 
   
            cin>>x;
            a.push_back(x);
        }
        for(int i = 0;i < n;i ++){ 
   
            if(i == 0){ 
   
                fup.push_back(a[i]);
                continue;
            }
            int pox = upper_bound(fup.begin(),fup.end(),a[i]) - fup.begin();
// cout<<pox<<endl;
            if(pox != fup.size())fup[pox] = a[i];
            else fup.push_back(a[i]);
        }
        reverse(a.begin(),a.end());
        for(int i = 0;i < n;i ++){ 
   
            if(i == 0){ 
   
                fdown.push_back(a[i]);
                continue;
            }
            int pox = upper_bound(fdown.begin(),fdown.end(),a[i]) - fdown.begin();

            if(pox != fdown.size())fdown[pox] = a[i];
            else fdown.push_back(a[i]);
        }
        cout<<max(fdown.size(),fup.size())<<endl;
    }
}

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

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

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


相关推荐

  • CCriticalSection的使用

    CCriticalSection的使用CCriticalSection是对关键段CRITICAL_SECTION的封装。 关键段(critivalsection)是一小段代码,他在执行之前需要独占对一些共享资源的访问权。这种方式可以让多行代码以“原子方式”来对资源进行操控。这里的“原子方式”,指的是代码知道除了当前线程之外没有其他任何线程会同时访问该资源。当然,系统仍然可以暂停当前线程去调度其他线程。但是,在当前线程离开关键

    2022年7月20日
    40
  • ai基础教程入门_绘画入门基础教程

    ai基础教程入门_绘画入门基础教程第一次写博文呢,这次写博客是因为应一位同学的要求,写一下GSAPJS的一个小教程。为什么说小呢?因为它实际上就是小,只是一个入门级的小教程。如果你想问:“那你为什么不写详细一点呢?”,我想说,说.,

    2022年8月2日
    6
  • 3. java缓存-线程内缓存guava cache

    3. java缓存-线程内缓存guava cacheguavacache的缓存结构常用的guavacache缓存根据上图中的缓存框架,我们常用的一些缓存实例有:LocalManualCache和LocalLoadingCache,两者唯一的区别就是LocalLoadingCacheextendsLocalManualCacheimplementsLoadingCache&amp;amp;amp;lt;K,V&amp;amp;amp;gt;接口。LocalManualCache…

    2022年10月4日
    2
  • 蓝牙脂肪秤模块测量原理

    蓝牙脂肪秤模块原理跟普通电子体重秤的原理差不多,都是利用压力传感器及芯片设计完成功能的实现。蓝牙电子秤的外形和地面有四个接触点,四个接触点那里都放着一种压力传感器,压力传感器将人体的重量转换成电信号,后经过芯片设计完成处理器AD采样,再经过换算便可以得到人体的体重。蓝牙脂肪秤模块测量体脂是通过电阻抗法测量出来的,它的具体原理是由电极片发出微弱电流,与人体形成一个闭环,通过肌肉易导电,脂肪不导电的…

    2022年4月11日
    54
  • Camstar开发C#代码规范、Camstar更新以及Designer 开发规范

    Camstar开发C#代码规范、Camstar更新以及Designer 开发规范C#代码规范1.通用的两种代码规范:Camel(驼峰式)、Pascal(帕斯卡)驼峰式:第一个单词小写,后面单词首字母大写其余小写(例如:containerName)帕斯卡:所有单词首字母大写其余都小写(例如:Lotstart)2.当且仅当私有成员可以使用下划线开始(例如:privatestring_containerName)3.参数名、成员变量、局部变量都统一使用驼峰…

    2025年6月20日
    3
  • ubuntu root默认密码(初始密码)

    ubuntu root默认密码(初始密码)ubuntu安装好后,root初始密码(默认密码)不知道,需要设置。1、先用安装时候的用户登录进入系统2、输入:sudopasswd按回车3、输入新密码,重复输入密码,最后提示passwd

    2025年8月4日
    12

发表回复

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

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