POJ 2299 - Ultra-QuickSort

PWM与光耦的完美联姻:低成本4-20mA转换方案揭秘 本文揭秘了PWM与光耦结合的低成本4-20mA转换方案,适用于工业自动化领域。通过PWM信号控制输出电流,光耦实现电气隔离,该方案成本低廉、电路简单且隔离可靠。文章详细介绍了两种经典电路实现方案,包括四光耦线性模式方案和PWM控制LM317方案,并提供了实战技巧与优化策略,帮助中小企业和电子DIY爱好者构建经济高效的4-20mA转换系统。 阅读详情


—— by A Code Rabbit


Description

输入一个序列,求序列的逆序数。


Type

Merge Sort

Advanced Data Structures :: Segment Tree

Advanced Data Structures :: Binary Indexed Tree


Analysis

求逆序数,用树状数组来做。

不过求逆序数的题目按惯例说应该用归并排序比较正宗。

况且这道题用树状数组还需要离散化,离散化也需要排序……

有点多此一举。

那么树状数组的好处是什么?我们为什么选择树状数组呢?

答案是,为了套模板……


Solution

// POJ 2299
// Ultra-QuickSort
// by A Code Rabbit

#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;

const int MAXN = 500002;

struct Bit {
    int c[MAXN], n;
    void Init(int x) { memset(c, 0, sizeof(c)); n = x; }
    void Add(int x, int y) {
        while (x <= n) { c[x] += y; x += x & -x; }
    }
    int Sum(int x) {
        int res = 0;
        while (x > 0) { res += c[x]; x -= x & -x; }
        return res;
    }
};

struct Element {
    int val;
    int order;
    bool operator<(Element one) const { return val > one.val; }
};

int n;
Element a[MAXN];
Bit bit;

int main() {
    while (scanf("%d", &n) && n) {
        for (int i = 0; i < n; i++) {
            scanf("%d", &a[i].val);
            a[i].order = i;
        }
        sort(a, a + n);
        int rank[MAXN];
        for (int i = 0; i < n; i++) {
            rank[a[i].order] = i + 1;
        }
        long long ans = 0;
        bit.Init(n);
        for (int i = 0; i < n; i++) {
            ans += bit.Sum(rank[i] - 1);
            bit.Add(rank[i], 1);
        }
        printf("%lld\n", ans);
    }

    return 0;
}

osgPython osgPython是一组 Python 模块,为 OpenSceneGraph 的 C++ 库提供了完整的 Python 接口。这意味着你可以在 Python 中调用几乎所有的 OSG 功能,从创建简单的场景到复杂的渲染效果。核心优势开发速度快:Python 语法简洁,无需编译,快速迭代易于学习:比 C++ 更易上手,适合原型开发和教学生态丰富:可以结合 NumPy、Matplotlib 等科学计算库跨平台:与 OSG 一样支持 Windows、Linux、macOS性能考虑。 阅读详情

相关推荐

Qt开发实战:QWebEngineView缓存路径详解与自定义配置(Windows/Linux)

本文详细解析了Qt框架中QWebEngineView组件的缓存机制,提供了Windows和Linux系统下的默认缓存路径及自定义配置方案。通过实战代码示例,展示了如何实现跨平台缓存路径管理、权限设置以及企业级应用中的多用户隔离策略,帮助开发者有效管理Web内容缓存,提升应用性能和数据安全性。

weixin_42519826的博客 403

POJ 2299 Ultra-QuickSort

POJ 2299 Ultra-QuickSort POJ入口:http://poj.org/problem?id=2299 使用模版【模版】树状数组 AC代码 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace st...

恒治学 182

【QT+PCL】串口读取单线激光雷达数据并在QVtkWidget组件中实时刷新(一)

(本文主要记录开发过程以及遇到的困难及解决方式)

2301_76329543的博客 3064

poj 2299 Ultra-QuickSort

poj 2299 Ultra-QuickSort 结合各位大牛的博客后,终于完成了首题线段树的学习。 如有错误还望大牛们斧正。 #include #include #include #define L(t)(t<<1) #define R(t)(t<<1|1) #define Mid(a,b)((a+b)>>1) using namespace std; const int MAXN=

YouthDance 724

卷王问卷考试系统——测试报告

本问卷考试系统是一款在线平台,支持用户发布和完成调查问卷,并进行考试管理,核心功能在于简化问卷创建发布、数据收集及考试组织流程。此次测试将围绕其关键模块展开,涵盖用户注册登录、项目列表、我的练习以及我的题库等核心部分。问卷考试系统(一)硬件环境普通办公电脑(CPU:Intel i5 、内存:16GB 、硬盘:512GB )(二)软件环境操作系统:Windows 11 ;浏览器:Chrome(版本 120+)、Firefox(版本 115+)、Edge(版本 120+)验证界面信息在完整性、一致性、准确性和用

m0_73433755的博客 552

苹果开发者账号注册指南:解决Apple Developer app证件验证失败问题

本文详细解析了苹果开发者账号注册中证件验证失败的常见原因与解决方案。核心在于确保Apple ID、设备与iCloud信息一致,并提供了从官方支持联系到材料准备的全流程操作指南,帮助开发者高效解决“未能验证证件”问题,顺利完成注册。

weixin_29232507的博客 2212

Ultra-QuickSort POJ2299

Ultra-QuickSort   POJ2299 题意:给一个序列,要求用交换相邻的数字,使其变成升序,也就是问序列每个数的逆序数总和 思路:用树状数组维护下前缀就知道了,从最好一个开始存入,这题的坑点就是数据特别大,必须先离散 离散化很简单,直接排序权值,然后一个个赋值从1~n 代码: #include&lt;iostream&gt; #include&lt;string.h&gt...

Doneone_的博客 297

YOLOv8改进:卷积篇 | 保姆级探索动态蛇形卷积 (Dynamic Snake Convolution) 的实现与应用

动态蛇形卷积是一种新的卷积操作,它能够更好地捕捉图像中的细节信息。传统卷积核的形状和大小是固定的,而动态蛇形卷积则允许卷积核在不同的位置动态调整其形状,以更好地适应输入数据的特点。这种灵活性使得动态蛇形卷积在处理复杂背景和细节丰富的图像时具有显著优势。我们先定义一个基本的动态蛇形卷积模块。这个模块将作为YOLOv8卷积层的替代。为了全面集成动态蛇形卷积,我们需要修改YOLOv8的模型定义,将所有的基础卷积层替换为我们的SnakeConv模块。

一键难忘的博客 5480

poj 排序相关之2299 Ultra-QuickSort

poj 排序相关之2299 Ultra-QuickSort Accepted 3660K 391MS 最需要注意的是long long的输出是printf(“%lld”,ans); 归并求逆序对的就直接能过,题目实在是没看懂

ziqi9216的博客 405

下载MNIST数据集并使用python将数据转换成NumPy数组(源码解析)

下载MNIST数据集并使用python将数据转换成NumPy数组首先来分析init_mnist函数接下来继续分析load_mnist函数实现数据集转换的python脚本的代码显示MNIST图像并确认数据 下载MNIST数据集并将数据转换成NumPy数组的Python脚本里面最重要的就是load_mnist函数,其他项目想要调用数据集的话,就可以调用load_mnist函数,得到一个字典类型的数据,字典的值是一个Numpy数组。 这些过程是如何实现的,现在开始逐字逐句分析源码: 在load_mnist函数中第

及时总结 4266

QT开发串口程序与单片机通讯

如果有对象对这个信号感兴趣,想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。的内容,虽然实现的功能很简单,但是QT上位机开发的步骤基本就是这些步骤,通过这个基础实例把这些套路摸透我们就可以接着进行后续更多QT程序地开发学习了。QWidget类:所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。我们上面运行的上位机都是在Qt Creator中编译运行的,如果我们需要把编写好的可执行文件发送给别人使用的话还需要进行打包。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 945

POJ - 2299 Ultra-QuickSort 树状数组求逆序对

POJ - 2299 Ultra-QuickSort 题意: 给你一个数组,可以交换相邻的两个数的位置,是数组变为升序排列,求交换的次数。 思路: 求逆序对,存在几个逆序对就需要交换几次。因为 a[i] 相对于n很大所以需要离散化 按照数值从大到小排序,如果不存在逆序对(数值最大的那个点的位置应该也是最大的,在添加一个位置时,这个位置前应该不·存在已经标记的数组),因为按照位置建立树状数...

没有梦想何以远行 244

MyBatis-Plus 实战:敏感字段自动加解密支持模糊查询

本文基于MyBatis-Plus框架提出了一种全链路敏感字段加密方案。通过自定义TypeHandler实现数据入库自动加密和查询自动解密,结合重写LambdaQueryWrapper处理查询条件加密,并适配多种查询方式。方案核心包括:1)AESUtil工具类提供加解密基础能力;2)EncryptTypeHandler实现字段类型转换;3)实体类通过注解配置加密字段。该方案在保证数据安全的同时,对业务代码侵入性小,支持姓名、手机号等敏感信息的全流程加密处理,满足系统开发的安全需求。

蔡定努 595

树状数组板子题之一:poj 2299:Ultra-QuickSort(求逆序对)

树状数组板子题之一:poj 2299:Ultra-QuickSort(求逆序对) 题目链接:poj 2299:Ultra-QuickSort 其实看似是问快排的交换总次数 其实就是问逆序对的总数 开始实现不知道怎么搞,看了题解之后原来是要用到离散化,感觉有点神奇 代码入下: #include<cstdio> #include<cstring> #include<ios...

serendipity的博客 295

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

POJ 2299 Ultra-QuickSort (离散化+树状数组)

树状数组一个优美的数据结构

n-1 767

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

POJ2299 Ultra-QuickSort 树状数组(求逆序数)+离散化

POJ2299 Ultra-QuickSort #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;algorithm&gt; #define lowbit(x) x&amp;-x//位操作 using namespace std; const int MAX=5*1e5+5; int aa[MAX],c[MAX],n...

Qianyri的博客 340

POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化)

POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化)题意分析前置技能 线段树求逆序对 离散化 线段树求逆序对已经说过了,具体方法请看这里 离散化 有些数据本身很大,自身无法作为数组的下标保存对应的属性。 如果这时只是需要这堆数据的相对属性, 那么可以对其进行离散化处理! 当数据只与它们之间的相对大小有关,而与具体是多少无关时,可以进行离散化。

Pengwill's Blog 562

POJ 2299 Ultra-QuickSort(求逆序数)

题目链接: http://poj.org/problem?id=2299 解题思路: 树状数组实际上就是一个数组,只不过它的每个元素保存了跟原来数组的一些元素相关的结合值。 若A为原数组,定义数组C为树状数组。C数组中元素C[ i ]表示A[ i –lowbit( i ) + 1]至A[ i ]的结合值。 lowbit(i)是i的二进制中最后一个不为零的位数的2次方,可以这样

piaocoder 423

POJ 刷题系列:2299. Ultra-QuickSort

POJ 刷题系列:2299. Ultra-QuickSort 传送门:2299. Ultra-QuickSort 题意: 给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。 思路: 实际上是让你求解逆序对的个数,求逆序对的个数可以采用归并排序。曾写过一篇关于算法细节系列(27):时间复杂度为何还能优化?今天又重新复习了一遍,有了一些新的理解。

Demon-初来驾到 664

POJ 2299:Ultra-QuickSort

Ultra-QuickSort Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 39397   Accepted: 14204 Description In this problem, you have to analyze a particular sorti

TOKHE的专栏 952

Ultra-QuickSort POJ - 2299

In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted i...

qq_41925919的博客 241

POJ - 2299 Ultra-QuickSort

In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sort...

hpu风之旅 239
上一篇: UVaOJ 465 - Overflow
下一篇: POJ 2352 - Stars
Ra_WinDing
博客等级 码龄15年 50粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值