1215. 小朋友排队(树状数组应用 -- 逆序对个数)

news2024/9/20 18:42:09

题目如下:

在这里插入图片描述

思路 or 题解

我们可以得出交换的次数 >= 逆序对个数 k k k
我们可以发现 所有 位置 左边大于它的个数 + 右边小于它的个数和 k i k_i ki 等于 k ∗ 2 k*2 k2
我们可以简单证明出(感觉出):答案就是 ∑ 1 n ( 1 + k i ) ∗ k i 2 \sum^n_1 \frac{(1 + k_i) * k_i}{2} 1n2(1+ki)ki

AC 代码如下:

#define ll long long
const int N = 1000009;
int n, tre[N], cnt[N], s[N];
int lowbit(int x)
{
    return x & -x;
}
void add(int x)
{
    for (int i = x; i < N; i += lowbit(i))
        tre[i]++;
}
int query(int x)
{
    int res = 0;
    for (int i = x; i; i -= lowbit(i))
        res += tre[i];
    return res;
}
void solve()
{
    cin >> n;
    ll ans = 0;
    for (int i = 1; i <= n; i++)
    {
        cin >> s[i];
        s[i]++;
        cnt[i] += query(N - 1) - query(s[i]);
        add(s[i]);
    }
    memset(tre, 0, sizeof tre);
    for (int i = n; i >= 1; i--)
    {
        cnt[i] += query(s[i] - 1);
        ans += (ll)(cnt[i] + 1) * cnt[i] / 2;
        add(s[i]);
    }
    cout << ans << '\n';
}
int main()
{
    buff;
    solve();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142047.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript 错误

文章目录JavaScript 错误 - throw、try 和 catchJavaScript 错误JavaScript 抛出&#xff08;throw&#xff09;错误JavaScript try 和 catchThrow 语句实例实例JavaScript 错误 - throw、try 和 catch try 语句测试代码块的错误。 catch 语句处理错误。 throw 语句创建自定义错…

string的使用介绍

目录 标准库中的string类 string类(了解) 编码介绍 string类的常用接口说明 Member functions 测试一&#xff1a;创建对象 测试二&#xff1a;遍历字符串 Iterators 测试三&#xff1a;反向迭代器(Iterators) Capacity 测试四&#xff1a;容器相关(Capacity) 测试…

Redis企业云如何通过缓存轻松扩展到亿级请求?

你是否在春运抢票过程中遇到12306 APP瘫痪&#xff1f; 你是否在双十一抢好物的时候显示系统繁忙&#xff1f; 你是否在微博刷某个爆了的娱乐新闻时显示页面走丢了&#xff1f; 前几天热搜上好像又说小红书又崩溃了&#xff1f; 当用户请求量过高&#xff0c;数据库无法支撑时&…

Annotation(注解)

一、注解概述1.从 JDK 5.0 开始,Java 增加了对元数据(MetaData) 的支持,也就是Annotation(注解)2.Annotation 其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用 Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些…

Go第 6 章:函数、包和错误处理

Go第 6 章&#xff1a;函数、包和错误处理 6.1 为什么需要函数 6.1.1请大家完成这样一个需求: 输入两个数,再输入一个运算符(,-,*,/)&#xff0c;得到结果.。 6.1.2使用传统的方法解决 分析一下上面代码问题 上面的写法是可以完成功能, 但是代码冗余同时不利于代码维护函数…

SAP FICO 成本对象控制解析

成本对象控制&#xff08;Cost Object Cotrol&#xff09;是指对不同的成本对象&#xff0c;比如成本收集器、生产订单、销售订单等进行成本的期末结算。基于这些不同的成本对象&#xff0c;SAP在成本对象控制菜单下面细分了相应的操作&#xff08;SAP 菜单 →会计核算 →控制 …

JavaScript篇.day10-面向对象,对象,构造函数,this关键字,原型

目录面向对象对象构造函数this关键字原型面向对象面向过程: 在开发过程中,关注过程的开发方式. 在开发时关注每一个细节,步骤和顺序.面向对象: 在开发过程中,只需要找一个对象来完成事情的开发思想对象: 在生活中,万物皆对象 封装: 将完成步骤封装在对象内部属性: 对象的特征核…

Java泛型上界与泛型方法的应用 | 如何通过泛型类获取任意类型的三个数的最大值?

目录 一、引言 二、泛型上界 1、什么是泛型的上界 2、泛型上界的语法 三、泛型方法 1、泛型方法的语法 2、泛型方法的类型推导 三、编程分析 1、MyCompare泛型类 2、泛型方法实现 四、总结 一、引言 初学Java时&#xff0c;同学们基本都会遇到这样一个基础编程题&am…

平面设计师去哪里找素材?

5个平面设计素材网站&#xff0c;赶紧收藏&#xff01; 1、菜鸟图库 https://www.sucai999.com/?vNTYwNDUx ​ 站内平面海报、UI设计、电商淘宝、免抠、高清图片、样机模板等素材非常齐全。还有在线抠图、CDR版本转换功能&#xff0c;能有效的为设计师节省找素材时间&#x…

MySQL查询训练题1

表信息&#xff1a; dept表和emp表 bonus表和salgrade表 练习题&#xff1a; 1、选择部门30中的所有员工&#xff1b; select * from Emp where DEPTNO30;2、列出所有办事员(CLERK)的姓名&#xff0c;编号和部门编号&#xff1b; select ENAME 姓名,EMPNO 编号,DEPTNO 部门…

【vue2中使用axios和插槽】一.组件的生命周期;二.vue2中使用axios;三.插槽

目录 一.组件的生命周期 1.组件的生命周期经历的阶段&#xff1a; &#xff08;1&#xff09;创建阶段&#xff1a;beforeCreate、created、beforeMount、mounted &#xff08;2&#xff09;运行阶段&#xff1a;beforeUpdate、update &#xff08;3&#xff09;销毁阶段&a…

C++ 学习 Day.10(标准模板库简介)

标准模板库&#xff1a; 简单地说&#xff0c;标准模板库&#xff08;STL&#xff09;是一组模板类和函数&#xff0c;向程序员提供了&#xff1a; • 用于存储信息的容器&#xff1b; • 用于访问容器存储的信息的迭代器&#xff1b; • 用于操作容器内容的算法。 关于STL可见…

Git学习和使用

目录&#xff1a;Git概念和知识Git的四个工作区域和工作流程Git 的四个工作区域Git 的工作流程git文件状态常用操作进阶操作单个本地库绑定多远程仓库方案Git概念和知识 Git的四个工作区域和工作流程 Git 的四个工作区域 Remote&#xff1a;远程仓库 位于托管代码的服务器&a…

【语义分割】语义分割综述文章

目录&#xff1a;语义分割一、什么是语义分割二、什么是图像中的语义信息&#xff1f;三、语义分割中的上下文信息四、语义分割方法五、语义分割神经网络六、目前比较经典的网络七、评价指标一、什么是语义分割 语义分割&#xff0c;也称为像素级分类问题&#xff0c;其输出和…

如何远程访问别人的MySQL数据库

1、 如何远程访问别人的MySQL数据库 - curryzwy - 博客园 (cnblogs.com)https://www.cnblogs.com/curryzwy/p/15730485.html 2、 mysql——同一局域网如何共同访问一台电脑的数据库&#xff08;胎教级教学&#xff09;_七月星辰的博客-CSDN博客_两台电脑共用一个mysql数据库…

1803. 统计异或值在范围内的数对有多少

解法一&#xff1a;字典树 前置知识&#xff1a;字典树 字典树是一种实现字符串快速检索的多叉树结构。 例如&#xff1a;给定字符串集合[cab, cos, car, cat], 我们现在需要判断cat是否存在于字符串集合中。 字典树代码&#xff1a; static int[][] trie new int[N][26]; …

AcWing 1221. 四平方和(二分或哈希)

一、题目描述 二、思路分析 先从时间复杂度的角度入手&#xff0c;这道题的数据范围是106&#xff0c;因此我们的时间复杂度要控制在O(n)O(n)O(n)或者O(nlogn)O(nlogn)O(nlogn)。 对于abcd中的任何一个元素&#xff0c;必定是小于n\sqrt nn​的。 我们的一个思路就是去枚举&…

如何选择用 .net Framework 或 .net core

小米问&#xff1a; 给你一个项目&#xff0c;如何选择用 netframework 或 netcore&#xff1f;如何选择服务器&#xff1f; 怎么去考虑&#xff1f; 咋回答呢 答&#xff1a; 不要考虑.net framework 除非极其特殊的情况 比如目标主机系统版本较低 服务器自然是linux好&a…

2023年考证时间一览表

2022年已经成为历史&#xff0c;在疫情背景全面开放下给大家整理了2023年全年的考试时间以及报名时间新鲜出炉&#xff0c;了解清楚&#xff0c;为2023年提前做好规划&#xff01; 1月份 2022年下半年中小学教师资格考试面试 报名时间&#xff1a;2022年12月9日-12日 考试时间…

大数据:Hive视图和索引

一、视图 1.1 简介 Hive 中的视图和 RDBMS 中视图的概念一致&#xff0c;都是一组数据的逻辑表示&#xff0c;本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象&#xff0c;没有关联的存储 (Hive 3.0.0 引入的物化视图除外)&#xff0c;当查询引用视图时&#xff0…