hdu 1394 Minimum Inversion Number 线段树

KIBANA可视化管理界面说明 更说明转自https://blog.youkuaiyun.com/IT_ZRS/article/details/125496588 1 主要结构功能 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 主要进行搜索和查询 Visualize:统计视图 构建可视化的图表 Dashboard:仪表视图 将构建的图表组合形成图表盘 Timelion:时间轴视图 随着时间流逝的数据 APM:性能管理视图 应用程序的性能管理系统 Canvas:大屏展示 阅读详情

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394

先求出原串的逆序数,然后每次最前一个数放在最后逆序数的变化量为 : n-2*num[i]-1 ,解释如下

因为每次都是把最前一个数num[i]换到最后,也就是说此时比num[i]小的数全在其后,也就是有num[i]组逆序数对,于是ans-=num[i] (减去这个数原有的逆序数对)

然后放在最后,那么比num[i]大的数全在num[i]的前面,也就是新产生了n-num[i]-1组逆序数对,于是ans+=n-num[i]-1


#include<stdio.h>
#include<string.h>
#define MAXN 5005
struct node
{
    int l,r;
    int cnt;
}t[MAXN];
int num[MAXN];
void construct(int l,int r,int p)
{
    t[p].l=l,t[p].r=r;
    t[p].cnt=0;
    if(l==r) return ;
    int m=(l+r)>>1;
    construct(l,m,p<<1);
    construct(m+1,r,p<<1|1);
}
int query(int l,int r,int p)
{
    if(t[p].l==l&&t[p].r==r)
        return t[p].cnt;
    int m=(t[p].l+t[p].r)>>1;
    if(r<=m) return query(l,r,p<<1);
    else if(l>m) return query(l,r,p<<1|1);
    else return query(l,m,p<<1)+query(m+1,r,p<<1|1);
}
void modify(int x,int p)
{
    if(t[p].l==t[p].r)
    {
        t[p].cnt=1;
        return ;
    }
    int m=(t[p].l+t[p].r)>>1;
    if(x<=m) modify(x,p<<1);
    else modify(x,p<<1|1);
    t[p].cnt=t[p<<1].cnt+t[p<<1|1].cnt;
}
int main()
{
    int n,i;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++) scanf("%d",&num[i]);
        int ans=0;
        construct(0,n-1,1);
        for(i=0;i<n;i++)
        {
            modify(num[i],1);
            if(num[i]+1<=n-1)
                ans+=query(num[i]+1,n-1,1);
        }
        int t=ans;
        for(i=0;i<n;i++)
        {
            t=t-num[i]+n-num[i]-1;
            if(t<ans) ans=t;
        }
        printf("%d\n",ans);
    }
    return 0;
}


433M无线遥控器EV1527协议解码实战:从逻辑分析到代码优化 本文详细解析了433M无线遥控器EV1527协议的实战解码过程。从使用逻辑分析仪抓取波形、理解同步头与数据位编码原理开始,逐步深入代码实现。文章重点对比了原始定时器轮询法的痛点,并提出了基于“边沿捕获+时间戳”的优化方案,构建了高效、可移植且具备抗干扰能力的解码引擎,最后分享了跨平台移植的核心技巧。 阅读详情

相关推荐

【ros2】ros2_control 全面解析与实战指南

ros2_control 是 ROS2 生态中用于机器人实时控制的核心框架,旨在统一硬件接入接口、复用控制算法,避免重复开发,实现仿真与实机硬件的无缝迁移。其核心目标是简化不同硬件(传感器、执行器、完整系统)的集成流程,让开发者专注于控制逻辑而非硬件适配。创建类型功能包,依赖rclcpp。实现on_initupdate在中声明控制器插件,编译生成动态库。在 YAML 配置文件中指定自定义控制器类型,加载测试。

EnHengNa的博客 1467

Minimum Inversion Number(线段树)

解题思路: 用线段树求逆序对。只需要

userluoxuan的专栏 750

MS2107 CVBS转USB2.0 音视频采集芯片,支持1080P@30HZ输出

MS2107 是一款视频和音频采集芯片,支持CVBS转USB2.0 ;可以将 CVBS、S-Video 和音频信号通过 USB接口传送到 PC、智能手机和平板电脑上预览或采集。

TEL18967112838的博客 2075

HDU 1394 Minimum Inversion Number(线段树:单点更新,求逆序数)

http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14648    Acc

hellohelloC的博客 1229

FFmpeg视频编码的流程详解及参考demo

本文主要讲解FFmpeg的视频编码的具体流程,API使用。最后再以一个非常简单的demo演示将一个yuv数据文件编码为H264的视频文件,也就是YUV编码为H264。

分享音视频技术 4498

PDF批量加水印 与 去除水印实践

我们可以给PDF加图片水印或文字水印,要去除图片水印,一般只需要删除最后一个图片对象即可。要去除文字水印,需要保证主体内容和文字水印在/Contents中位于不同的对象内,这样我们只需要删除文字水印对应的对象即可删除水印。而对于主体内容和文字水印已经混合在一个对象时,本文的提供的方法则无能为力,需要进一步深入分析PDF细节。

小小明-代码实体的专栏 2755

hdu Minimum Inversion Number(线段树求逆序数有关问题的一个小归纳)

Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4904    Accepted Submission(s): 2991 Problem Description T

勿忘初衷 5576

Vue2项目实战:vue2-org-tree实现动态组织架构图

本文详细介绍了如何在Vue2项目中使用vue2-org-tree组件实现动态、可交互的组织架构图。内容涵盖从快速安装、基础渲染到核心功能实战,包括水平布局、节点展开折叠、响应式数据绑定、深度自定义节点内容以及事件处理。同时提供了性能优化、样式覆盖等避坑指南,并通过一个完整的企业级Demo展示了如何打造功能丰富的架构图,助力高效开发后台管理系统。

weixin_28040125的博客 522

Minimum Inversion Number (逆序数----规律 + 线段树)

The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i &lt; j and ai &gt; aj. For a given sequence of numbers a1, a2, ..., an, if we move the fi...

短发 724

地图坐标系大全:常用地图坐标系详解与转换指南

地图坐标系是用于描述地图上位置的数学模型。它可以用来表示地球表面上的任意一个点,使得这个点的位置可以在地图上精确定位。不同的地图坐标系采用不同的基准面和投影方式,因此会有不同的坐标系参数,不同的坐标系之间也需要进行坐标转换。在地图制图、导航、GIS等领域中,地图坐标系是一个非常重要的概念。

weixin_39888010的博客 1万+

把 SAP 输出稳稳落到 PDF:从 SPAD 前端打印到 ABAP 程序级转换的一套方法

摘要:本文介绍了三种在SAP系统中将报表输出转为PDF文件的方法。路线A通过SPAD配置前端输出设备,结合Windows打印机设置实现用户交互式PDF保存;路线B在SP01事务码中将已有Spool请求另存为PDF,适用于补救导出;路线C通过ABAP程序自动转换Spool为PDF,适合批量处理。文章详细说明了配置步骤,并针对常见问题(如乱码、文件格式错误等)提供了排查思路。三种方案分别适用于不同场景,用户可根据实际需求选择最合适的PDF导出方式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 217

HDU 1394 Minimum Inversion Number // 线段树求逆序数

题目描述HDU 1394 Minimum Inversion Number解题思路题目大意: 给出0~n-1的一个排列,每次可以把前m个数放在后面,eg: a1{a}_{1}, a2{a}_{2}, …, an−1{a}_{n-1}, an{a}_{n} (m=0)(m = 0 ) a2{a}_{2}, a3{a}_{3}, …, an{a}_{n}, a1{a}_{1}

FZU_zyt的专栏_(:з」∠)_ 414

【AUTOSAR-COM】-10.5-APP CAN Frame/PDU“发送周期不准“的影响因素

一个Tx PDU在COM模块中的数据流; Tx APP CAN Frame/PDU"发送周期不准"的影响因素;

「汽车电子助手」的博客 2385

hdu1394(Minimum Inversion Number)线段树

明知道是线段树,却写不出来,搞了半天,戳,没办法,最后还是得去看题解(有待于提高啊啊),想做道题还是难啊。 还是先贴题吧 HDU-1394 Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s)...

weixin_30709809的博客 96

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

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[HDU 1394]Minimum Inversion Number[逆序对][线段树]

题目链接:[HDU 1394]Minimum Inversion Number[逆序对][线段树] 题意分析: 实质上来说,这道题就是求n个小于n的数的排列变成环之后,从其中某一点切开的最小逆序对数。 解题思路: 第一步:求出初始逆序对数。可以用归并排序,这里我用了线段树。 能使用线段树的理由:线段树存储的是一个区间段的值,应用到求逆序对数,我们就可以让它初始时都为0,每次加入一个数x前

闲停 819

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【线段树I:点修改+区间查询】hdu 1394 Minimum Inversion Number

【线段树】hdu 1394 Minimum Inversion Number题目链接:hdu 1394 Minimum Inversion Number题目大意给你N个数的排列,求包括该序列在内的所有循环序列的最小逆序对数(N<5000) 暴力的话O(n^3)直接超时,线段树一开始还真不好想啊!最关键的是弄明白每个节点中的sum代表什么意思:【lc,rc】区间出现的数的个数,因为这道题n个数大小0

Hacker_vision 763

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

HDU1394 Minimum Inversion Number 线段树+数学

Problem DescriptionThe inversion number of a given number sequence a1, a2, …, an is the number of pairs (ai, aj) that satisfy i < j and ai > aj.For a given sequence of numbers a1, a2, …, an, if we move

Bill_Utada的成长之路 1077

hdu 1394 Minimum Inversion Number(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目大意:求数组的逆序数和,然后把第一个元素放最后,求一个新的逆序数和,重复操作,问最小的逆序数是多少。 数组大小为n,元素为0-n-1的数,且不重复。题目说了是a permutation of the n integers from 0 to n-1. 。 分成两步:先求原数

Algobird 507

HDU1394 Minimum Inversion Number 线段树

传送门:HDU1394 题意:给定1-n的一个排列,可以将前面任意多个数按顺序放到后面形成新的序列,问所有这些序列中逆序数最小值为多少。 思路:只要求出第一个序列的逆序数来,其他序列的逆序数就可以递推出来,因此重点在于第一个序列的逆序数怎么求,因为数据范围较小,可以考虑用树状数组或者线段树维护1-n每个点,出现过就更新为1,否则为0,则每个数产生的逆序数(即每个元素对总逆序数的贡献)就可以在输

WA是一笔财富 266

hdu1394 Minimum Inversion Number (线段树)

http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 27295Acc...

卑鄙的我 157

HDU 1394 Minimum Inversion Number 线段树

Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17537    Accepted Submission(s): 10640 Problem Description The

学 以致用 236

HDU 1394 Minimum Inversion Number(线段树单点更新)

http://acm.hdu.edu.cn/showproblem.php?pid=1394 题意:有0~n-1数字组成的序列,然后进行这样的操作,每次将最前面一个元素放到最后面去会得到一个序列,每得到一个序列都可得出该序列的逆序数(如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数)。要求求出最小的逆...

aocang4831的博客 219

HDU1394——线段树——Minimum Inversion Number

Description The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i < j and ai > aj.For a given sequence of numbers a1, a2, ...,...

dgjm4087的博客 125

hdu 1394 Minimum Inversion Number 【线段树查找】

Problem Description The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i aj. For a given sequence of numbers a1, a2, ..., an, if we mov

ACM_e的博客 368

HDU1394 Minimum Inversion Number(线段树)

Problem Description The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i aj. For a given sequence of numbers a1, a2, ..., an, if we mov

蒟蒻升级中...Orz 934
上一篇: 数论的一些函数
下一篇: hdu 1098 Ignatius's puzzle数论
yjCola
博客等级 码龄14年 4粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值