51Nod1364 最大字典序排列

Nginx反向代理HTTPS服务报错排查:The plain HTTP request was sent to HTTPS port 在Web服务架构中,反向代理是连接客户端与后端应用的关键组件,它通过转发请求实现负载均衡和安全隔离。其工作原理涉及监听端口、解析协议头部,并根据配置将请求路由至上游服务器。这一机制的技术价值在于提升系统可扩展性、简化部署,并增强安全性。在HTTPS场景下,代理服务器需正确处理SSL/TLS终止与传递,若配置不当,常引发协议不匹配问题。例如,当Nginx将解密后的HTTP请求转发至期待HTTPS的后端,或客户端直接向SSL端口发送明文请求时,便会出现经典报错“The plain HTTP request wa 阅读详情

题目看这里

一道比较简单的贪心题

容易想到从前到后确定每一位

我们可以用一个splay来维护当前未确定的部分的顺序

假设当前剩下k次操作机会

那么我们可以求出splay中前k+1个元素中的最大元素i,令k减少rank(i),让后将其输出并从splay中删掉

最后k=0时,输出splay中剩余元素

比题解那个线段树好写多了,主要是不用想,而且splay还挺快的

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 100010
#define son(x) (s[f[x]][1]==x)
using namespace std;
int f[N],s[N][2],sz[N],l[N],t[N];
int n,k,cnt=0,rt=0;
inline int ps(int x){
    sz[x]=sz[s[x][0]]+sz[s[x][1]]+1;
    t[x]=max(l[x],max(t[s[x][0]],t[s[x][1]]));
}
inline void rot(int x){
    int p=f[x],g=f[p],d=son(x);
    s[p][d]=s[x][!d]; f[s[p][d]]=p;
    s[x][!d]=p; f[p]=x; f[x]=g;
    if(g) s[g][p==s[g][1]]=x; ps(p); ps(x);
}
inline void splay(int x,int r=0){
    for(int p;(p=f[x])!=r;rot(x))
        if(f[p]!=r && son(x)==son(p)) rot(p);
    if(!r) rt=x;
}
inline int select(int k,int x=rt){
    for(int w;;){
        w=sz[s[x][0]]+1;
        if(w==k) return x;
        if(k<w) x=s[x][0];
        else k-=w,x=s[x][1];
    }
}
inline int rank(int x){
    int r=sz[s[x][0]]+1;
    for(;x;x=f[x])
        if(son(x)) r+=sz[s[f[x]][0]]+1;
    return r;
}
inline int merge(int x,int y){
    if(x&&y){
        y=select(1,y);
        splay(y,rt);
        s[y][0]=x; f[x]=y; ps(y);
        return y;
    } return x+y;
}
inline int fMax(int x){
    for(;;){
        if(l[x]==t[x]) return x;
        else if(t[s[x][0]]>t[s[x][1]]) x=s[x][0]; else x=s[x][1];
    }
}
int main(){
    scanf("%d%d",&n,&k);
    for(int x,i=1;i<=n;++i){
        scanf("%d",l+i);
        if(i>1){ f[i-1]=i; s[i][0]=i-1; ps(i); } else sz[i]=1,ps(i);
    }
    rt=n;
    for(int i=1,j;k>0&&i<=n;++i){
        splay(select(min(k+1,sz[rt])));
        if(l[rt]>t[s[rt][0]]) j=rt;
        else splay(fMax(s[rt][0]));
        printf("%d\n",l[rt]); k-=sz[s[rt][0]]; rt=merge(s[rt][0],s[rt][1]); f[rt]=0;
    }
    while(sz[rt]) splay(select(1)),printf("%d\n",l[rt]),rt=merge(s[rt][0],s[rt][1]),f[rt]=0;;
}

吊打BEVFormer!GaussianBeV实战:用3D高斯开启BEV分割新范式 GaussianBeV是一种基于3D高斯建模的BEV分割新方法,在自动驾驶感知任务中实现了SOTA性能。其核心创新在于将场景元素表示为3D高斯分布,通过均值、协方差和权重精确描述物体位置、形状和置信度,相比传统BEV方法具有更强的空间建模能力。文章详细介绍了GaussianBeV的原理、环境配置、训练推理流程及其在自动驾驶和城市3D重建中的应用,并讨论了优化方向和未来发展趋势。该方法在nuScenes等数据集上表现出色,为BEV分割任务提供了新的解决方案。 阅读详情

相关推荐

使用Jacob实现将Word文件转换为Pdf文件

如果是首次使用 jacob,建议先直接从 github上下载 zip包,因为在实现Word转Pdf的时候,不仅需要用到 jacob.jar,还需要 jacob.dll 库,而zip包中都有。官方使用文档可以参考:https://github.com/freemansoft/jacob-project/blob/main/docs/UsingJacob.md。// 如果安装的是微软的 Office,需要使用 Word.Application。

qq_41672950的博客 750

数据结构与算法笔记:字典序最大问题分析

字典序最大问题 问题描述 给定一个1到n的排列(无序状态的),依次插入到栈中,在每时每刻都可以多次从栈中弹出栈顶 问:应如何使得弹出栈顶的序列的字典序最大,并输出这个序列 问题分析 什么是字典序 比如两个序列:5,4,3,2,1和1,2,3,4,5 这两个中第一个的字典序最大 每个位置上的数字比其他序列上同一位置的数字要大 比如:第一位置中5比1大,第二位置中4比2大这样 即:字典序最大 = 从左向右看这个序列,每个数字都尽量大 题目给定一个1到n的排列,每个数字只出现一次 要使出栈的字典序最大

Wang的专栏 4391

PID参数自整定实战解析:从继电反馈到智能调节的完整实现

本文深入解析PID参数自整定的实战应用,从继电反馈原理到智能调节算法的完整实现。通过详细讲解振荡波形特征提取、参数计算的工程化改进及工业场景调试技巧,帮助工程师快速掌握PID自整定技术,提升控制系统性能。特别针对嵌入式系统优化和噪声环境下的稳定策略提供了实用解决方案。

weixin_28731223的博客 458

【js小题】最大字典序排列

例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么?

nakyoooooo的博客 604

react +ant desiagn pro实现按钮操作权限控制

在ant desiagn pro中提供了一个access用于对权限进行控制,需引入useAccess和Access

Sylvasylva的博客 2210

基于FPGA的工业相机项目大赏1——cmos线阵相机

●CMOS CL0402 作为图像传感芯片,曝光后产生一定格式的图像数据;●FPGA ZYNQ7020 作为主控芯片负责cmos驱动控制、图像像素的采集、cmos寄存器的配置、cameralink协议的实现、上位机串口通信的实现;●Cameralink端子实现图像数据的高速串行发送,将数据传送至采集卡PC端。系统工作流程如下: FPGA 上电加载配置程序,计算机通过异步串口向 FPGA 发送控制信息,FPGA对接收的控制信息进行分析判断。

weixin_41895751的博客 6397

字典序最大的子序列

题目链接:https://www.nowcoder.com/acm/contest/84/A 题目描述 给定字符串s,s只包含小写字母,请求出字典序最大的子序列。 子序列:https://en.wikipedia.org/wiki/Subsequence 字典序:https://en.wikipedia.org/wiki/Lexicographical_order 输入描述: 一行一个字...

ac@zhui的博客 3412

离心泵级间导叶的设计计算

离心泵级间导叶的设计计算高速离心泵级间流道的作用是将第一级复合叶轮流出的高速液流收集起来并送入第二级复合叶轮。级间流道的设计应考虑降低液体的流速,实现动能向压力能转化,减小液体的水力损失。级间流道主要有蜗壳形流道和导叶两种结构形...

cqzc55322的博客 2565

[回溯]leetcode1718:构建字典序最大的可行序列(medium)

题目: 看数据范围 n 最大取20,所以直接一个回溯就行了,注意这是一个带bool型的回溯,与平时写的void型的不一样,所以我们直接将 n 从大到小进行枚举,这样找到最优解之后,一路返回 ture,得到正确答案就行了。这里提供两种版本的代码,思路都是一样的,学习下码风就行。 代码如下: bool visited[45]; class Solution { public: vector<int> res,trace; vector<int> constr

algsup 580

Meta开源Ego-Exo4D数据集:如何用1400小时多模态视频训练你的AI模型

Meta开源的Ego-Exo4D数据集包含1400小时多模态视频,涵盖第一人称和第三人称视角、眼动追踪、IMU传感器等多种模态,是AI模型训练的宝贵资源。本文详细介绍了从数据集下载、预处理到模型训练的全流程,帮助研究者高效利用这一多模态数据集进行AI模型开发。

weixin_29159441的博客 342

梯度提升决策树GBDT原理与代码实例讲解

梯度提升决策树GBDT原理与代码实例讲解 1.背景介绍 1.1 机器学习发展历程 机器学习是人工智能领域的一个重要分支,旨在使计算机具备学习和改进自身性能的能力。随着大数据时代的到来,海量的数据为机器学习算法提供了广阔的应用空间。在

AI天才研究院 1081

后缀数组的应用:在哪个位置插入字符串使得字典序最大

使用DC3算法解决插入字符串使得字典序最大的问题

明朗晨光的专栏 852

深入浅出:使用Python爬取链家二手房数据

在数据驱动的时代,房地产数据作为社会经济的重要指标,一直是数据分析师、投资者和研究人员关注的焦点。链家作为国内领先的房产中介平台,其二手房数据具有较高的真实性和时效性。然而,官方API的访问限制和数据获取的门槛,让很多初学者望而却步。本文将带你从零开始,使用Python编写一个符合robots.txt规范的链家二手房爬虫,获取标题、户型、价格等信息。文章不仅会提供完整代码,还会深入讲解反爬策略、请求头伪装、数据解析、异常处理等实战技术。目录前言:为什么要写这篇博客?一、爬虫前的准备:法律与道德。

2201_76125261的博客 88

51Nod 1364 最大字典序排列(贪心、线段树)

51Nod 1364 最大字典序排列 抱歉博客两天没更新。今天被数据挖掘老师挂科警告,再也不敢上课划水了,好怕毕不了业啊,为什么大佬们那么强还可以保持gpa,我acm这么菜,怎么学业还出问题了呀,感觉人跟人之间的区别真的比人跟狗的区别还大。 题解 那么我们从左往右依此确定当前位置应该为什么数,现在要保证字典序最大,那么当前剩余交换次数内能拿到的最优解就是这个把次数内的最大数给取出来,然后更...

weixin_34220623的博客 105

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

51nod1364 最大字典序排列

给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么?例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。Input第1行:2个数N, K中间用空格分隔(1 &lt;= N &lt;= 100000, 0 &lt;= K &lt;= 10^9)。 第2至N + 1行:每...

qq_41510496的博客 705

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【51NOD1364】最大字典序排列

题面 给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么?例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。1 <= N <= 100000, 0 <= K <= 10^9 分析 贪心,找第i个位置的数的时候,寻找在i+k的范...

Ashley_2013的博客 388

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

51nod 1364 最大字典序排列(线段树)

1364 最大字典序排列基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么? 例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。 Input 第...

diaocuiguo2493的博客 190

51NOD 1364 最大字典序排列 贪心+线段树

题目链接 题意: 给出NNN个数的排列,你有kkk次操作的机会,每次操作可以将相邻的两个数交换位置。 问kkk次操作以后,能够得到的字典序最大的排列是什么? 思路: 根据数据范围,排除了动态规划的方向。 通过观察样例和手算几组简单的例子,我们可以发现,排列的第一位应尽可能的大,满足以后再让排列第二位尽可能的大…以此类推可以得到最终满足条件的最优解。 故考虑贪心。 假设前i−...

新熊君的博客 482

51nod - 1364 最大字典序排列

给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么? 例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。 Input 第1行:2个数N, K中间用空格分隔(1 &lt;= N &lt;= 100000, 0 &lt;= K &lt;= 10^9)。 第2至N...

brucehb的专栏 1276

51nod-1364 最大字典序排列(线段树)

原题链接 1364 最大字典序排列 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么? 例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的

L. 493

51Nod-1364-最大字典序排列

ACM模版描述题解典型的贪心,每次都找能够移过来前边的最大值,记住是能够,所以我们需要在剩余的操作次数可以满足的范围内找到最大值,不断查找,不断移动输出,此时,存在一个问题,N、K 太大了,每次查找和移动的花费特别高,所以此时我们应该借助比较高级的数据结构来实现快速查找,酱紫,我们自然会想到线段树之类的数据结构,这个数据结构涉及到结点更新、结点查找、区间求和等操作,所以要小心维护哦~~~代码#inc

逐梦者 893

51nod 1364 最大字典序排列

贪心+线段树+二分 姿势有点问题。。加了快速读写才不T。。。。 #include using namespace std; const int MAXN=100100; int a[MAXN],pos[MAXN]; struct node { int l,r; int nsum; }segtree1[MAXN<<2],segtree2[MAXN<<2]; void build1(int

月阁 341

51nod 1364 线段树

给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么? 例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。 解题: 《System Messag 的题解》 这个题目明显是要贪心的。从前往后每次看看能不能拿一个大的放到当前数字的前面,而且要拿尽可

translata的博客 689

51nod 5级算法题

先挖个坑,慢慢来填QAQ目前已经做掉的题,题解慢慢补: 1346 递归 1349 最大值 1354 选数字 1364 最大字典序排列 1378 夹克老爷的愤怒 1383 整数分解为2的幂 1394 差和问题 1398 等公交 1403 有趣的堆栈 1421 最大MOD值 1423 最大“二”货 1424 零树 1429 巧克力 1431 快乐排队 1437 迈克步 1

WTMSB!!!的博客 456
上一篇: 51Nod1537 分解
下一篇: GDOI2018
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值