nyist 117 求逆序数(哈希表+树状数组)

基于Java17、SpringBoot、vue3、antdv-next、uniapp等主流技术构建的全场景极速开发平台 MDP内置3个web端、1个移动端 重点解决用户中心、开发者平台、管理后台3个应 MDP-主数据平台,后端项目。专注于单点登录解决方案。内置用户中心、开发者平台、管理后台3个应用。包含:单点登录、Oauth2 登录、用户身份管理、应用申请、应用接入、主数据维护、主数据订阅、主数据广播、应用接口调用、接口管理管理和查看、系统配置等功能。 立即下载

题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=117


题意:汉语题。。。


哈希表不说了,树状数组插点问线。

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

#define clr(arr,v) memset(arr,v,sizeof(arr))

const int M = 10000007;
template<class T,int size>
class Hash{
public:
	Hash(){}
	void clear(){
		pos = index = 0;
		clr(head,-1);
	}
	T& operator[](T value){
		return val[add(value)];
	}
	T add(T value){
		int v = value / M;
		for(int i = head[value%M];i != -1;i = next[i])
		{
			if(num[i] == v)
				return i;
		}
		num[pos] = v;
		val[pos] = ++index;
		next[pos] = head[value%M];
		head[value%M] = pos++;
		return pos-1;
	}
private:
	int index,pos,val[size],next[size],head[M];
	T num[size];
};

Hash<int,1000005> h;

int tree[1000005],num[1000005],num1[1000005];

int lowbit(int x) {return x&(-x);}

void update(int x)
{
	if(x <= 0) return ;
	tree[x] += 1;
	update(x - lowbit(x));
}

int get_num(int x,int n)
{
	if(x >= n) return tree[n];
	return tree[x]+get_num(x+lowbit(x),n);
}

int main()
{
	//freopen("1.txt","r",stdin);
	int T;
	scanf("%d",&T);
	while(T--)
	{
		h.clear();
		memset(tree,0,sizeof(tree));
		int n,val,t;
		long long sum = 0;
		scanf("%d",&n);
		for(int i = 0;i < n;++i)
		{
			scanf("%d",&num[i]);
			num1[i] = num[i];
		}
		sort(num1,num1+n);
		for(int i = 0;i < n;++i)
			h[ num1[i] ];
		for(int i = 0;i < n;++i)
		{
			t = h[ num[i] ];
			sum += get_num(t,n);
			update(t-1);
		}
		printf("%lld\n",sum);
	}
	//printf("%.2lf\n",(double)clock()/CLOCKS_PER_SEC);
	return 0;
}


Win7时间修复(时间错误修复文件) 运行方法:解压后运行reg文件即可。 支持的Win7版本: 1. Windows 7 Starter(入门版 / 初级版) 2. Windows 7 Home Basic(家庭普通版) 3. Windows 7 Home Premium(家庭高级版) 4. Windows 7 Professional(专业版) 5. Windows 7 Enterprise(企业版) 6. Windows 7 Ultimate(旗舰版) 7. Windows 7 Professional for Embedded Systems(嵌入式专业版) 8. Windows 7 Ultimate for Embedded Systems(嵌入式旗舰版) 立即下载

相关推荐

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?

求逆序数(树状数组)

https://www.nowcoder.com/acm/contest/77/A 简单的树状数组 具体操作c[100005]用于记录区间内已经出现数字的个数,用add()更新区间内已经出现的数字个数,用sum()来求出该数出现之前的数字个数之和 转载于:https://www.cnblogs.com/MekakuCityActor/p/8474491.html...

aiyuneng5167的博客 131

usb 扩容盘检测修复工具源码,编译产物

usb 扩容盘检测修复工具源码,编译产物

树状数组离散化求逆序数

树状数组可以用来求逆序数, 当然一般用归并求。如果数据不是很大, 可以一个个插入到树状数组中, 每插入一个数, 统计比他小的数的个数,对应的逆序为 i- getsum( da ta[i] ),其中 i 为当前已经插入的数的个数, getsum( data[i] )为比 data[i] 小的数的个数i- sum( data[i] ) 即比 data[i] 大的个数, 即逆序的个数但如果数据比较大,

424

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)内容概要:本文主要介绍了基于Plecs的全桥LLC谐振变换器仿真模型,涵盖变频控制下的多相交错LLC谐振变换器闭环仿真、V2G电动汽车ACDC整流与双向CLLC谐振变换器充放电仿真、LLC谐振变换器的开环与闭环软启动设计,以及储能系统中双向Buck-Boost变换器结合模型预测电流控制和电压下垂控制的仿真研究。同时,文档列举了多种电力电子系统与控制策略的Simulink/Plecs仿真案例,涉及三相交错并联Buck变换器、三电平Buck直流变换器、单相Boost PFC电路等,展示了丰富的电力变换器建模与控制技术。此外,还包括参数设计报告、计算书及相关参考文献,适用于从事电力电子、新能源发电、电动汽车充放电系统等领域的研究人员和技术开发人员。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、电动汽车、电力系统等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 学习和掌握LLC谐振变换器及其他典型电力电子变换器的工作原理与建模方法;② 实现闭环控制策略如变频控制、软启动、模型预测控制、下垂控制等的仿真验证;③ 支持科研项目、毕业设计或工程开发中的系统仿真与优化设计。; 阅读建议:建议结合文中提供的仿真模型、设计报告与参考文献,逐步搭建并调试相应系统,重点关注控制策略的实现细节与参数整定过程,以深入理解系统动态响应特性与控制性能。

逆序数的几种求法

求一个数列的逆序数 逆序对:数列a[1],a[2],a[3]…中的任意两个数a[i],a[j] (i,如果a[i]>a[j],那么我们就说这两个数构成了一个逆序对 逆序数:一个数列中逆序对的总数 如数列 3 5 4 8 2 6 9 (5,4)是一个逆序对,同样还有(3,2),(5,2),(4,2)等等 那么如何求得一个数列的逆序数呢? 方法1:一个一个的数 最简单也是最容易想到的方法

dlengong的专栏 10万+

保姆级教程:在Ubuntu 22.04上从零安装SUMO并运行第一个交通仿真

本教程详细介绍了在Ubuntu 22.04系统上从零安装SUMO交通仿真软件并运行第一个仿真的完整流程。涵盖环境准备、PPA源安装、核心组件验证、首次仿真案例运行以及进阶配置技巧,特别针对netedit路网编辑器和地图格式转换等实用工具进行重点讲解,帮助用户快速掌握SUMO在交通仿真领域的应用。

weixin_30546189的博客 423

STM32 LWIP网络连接不稳?教你用状态机+PHY检测打造工业级可靠以太网

本文针对STM32 LWIP网络连接不稳问题,提出了一套工业级可靠以太网解决方案。通过状态机设计与PHY芯片深度检测,有效解决了网络异常处理短板,实现了热插拔网线、自动恢复和底层链路监控等功能,显著提升工业环境下的网络稳定性。

weixin_30340819的博客 594

为何LPDDR4支持on-die ECC,但是DDR4却不支持呢?

DRAM的ECC,目前的编码方式都是128bit data,产生8bit parity或者ECC code. 而且必须要128bit才行。这8bit的ECC code是要被写入到DRAM内存里面的,从而read的时候,可以读取这8bit ECC code来判定read data是否有错,如果是SBF,就可以纠错了,如果是double bit,大部分时候是可以detect到错误,即所谓的SEC(Single Error Correct) + DED(Double Error Detect).

一个DRAM从业者的告白 1556

libfranka---joint_impendence_control例程分析

joint_impedance_control.cpp例程分析 部分内容来自链接,我个人以初学者的角度对代码进行了更加细致的解释。 核心部分: // Set and initialize trajectory parameters. const double radius = 0.05; const double vel_max = 0.25; const double acceleration_time = 2.0; const double run_time = 20.0; d

weixin_41567783的博客 1121

线段树或树状数组求逆序数(附例题)

学习了博主:MyZee ,shengweison 的文章 线段树或树状数组求逆序数 假设给你一个序列 6 1 2 7 3 4 8 5, 首先我们先手算逆序数, 设逆序数为 N; 6的前面没有比他大的数 N +=0 1的前面有一个比他大的数 N+=1 ...

weixin_30782331的博客 356

NRF24L01模块的5个常见问题及解决方案:从信号干扰到功耗优化

本文深入探讨NRF24L01无线模块在STM32开发中的5大常见问题及解决方案,包括通信距离优化、数据丢失排查、电源噪声抑制、SPI通信故障处理以及低功耗设计。通过代码示例和电路图分析,提供实用的优化策略,帮助开发者提升无线通信的稳定性和效率。

weixin_28256233的博客 226

NYOJ 117 求逆序数 【树状数组】或【归并排序】

原题链接:点击打开链接 【一】 利用 树状数组 离散化 之后求逆序数: 代码: #include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; #define N 1000000 long long c[N+1],aaa[N+1]; struct sb { int x; int y; }yi[...

爱.NET 149

驱动钛丝(SMA)的应用(5)汽车腰托气阀常见问题及解决方案

财哥在前段时间发布的《驱动钛丝(SMA)的应用(1)汽车腰托支撑按摩气阀模块》一文,引发了很多企业的拜访和交流。 目前很多厂家已经启动或正在进行相关研发,同时也遇到了诸如:钛丝选型、驱动位移、响应设计、温度控制、力量设计、点动滞后、铆接工艺、量化生产等问题。

weixin_39168671的博客 1242

Cursor使用教程,有点难

Cursor Code Editor 不仅仅是一个代码编辑器,它更是一个集成了 AI 的全功能开发环境,帮助你从代码编写到优化的整个过程变得更加智能和高效。它通过内置的 AI 代码补全、错误检测和自动修复功能,大大减少了手动编写代码的负担,帮助你快速完成开发任务。同时,Cursor 还与多种前沿的 AI 大模型集成,包括 OpenAI 的 GPT-4o、Claude 3.5 和 Meta 的 Llama 3.1。

xiaofeitunAI的博客 1万+

HDU1542 Atlantis(扫描线+矩形面积并+线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1542 题意:给出一些矩形,求面积并。 从左到右扫描,纵坐标排序后,按数组下标建树,插入纵线段端点再映射到原数,别的就没什么了。 参考代码: #include #include #include #include #include #include using namespace std

fire__ice的专栏 1010

能碳双控| AIRIOT智慧能碳管理解决方案

基于AIRIOT打造的智慧能碳管理平台解决方案结合大数据、物联网、人工智能(AI)、数字孪生等新一代信息技术,通过整合碳达峰、碳中和、实时碳价、碳配额和碳资产等多个模块,为组织提供了全方位、灵活且智能的碳资产管理解决方案,有助于实现碳管理目标、提升可持续性,并适应碳市场的不断变化。

AIRIOT的博客 1808

hdu1828 Picture(扫描线+矩形周长并+线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1828 题意:给出一些矩形,求并后的周长。 哈希后,扫描即可。第一道扫描线的题目,尽管是裸题,还是可开心~~ 参考代码: #include #include #include #include using namespace std; #define clr(arr,val) memset

fire__ice的专栏 944

qq对接openclaw,通过qq发送命令

把 OpenClaw 接入 QQ 和微信,目前主流的微信文章和教程主要提供了两种截然不同的路径。我为你梳理了它们的核心区别和关键步骤,你可以根据自己的需求来选择。

suny8的专栏 270

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU4419 Colourful Rectangle(矩形面积并+线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4419 解析:跟一般矩形面积并有一点的区别,就是每条线的状态要用一个数组来维护,这里的depth[ i ] 表示当前状态第i中颜色的已覆盖的长度,三种基本颜色可以分别用1,2,4表示,然后通过二进制运算得到其他颜色的标号,其他也没什么了。 参考代码: #include #include #incl

fire__ice的专栏 895

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

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

hdu 4267 A Simple Problem with Integers(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4267 题意很简单,插线问点。 解析:首先要完成一个转化,转化以后跟 hdu 4288 非常相似。更新 的时候,(i-a)%k == 0,相当于 i%k == a%k(根据中国同余定理可证),这样每次更新的元素就是下标模k等a%k的元素了。k<=10,所以模各个k的所有情况有55种,可以维护

fire__ice的专栏 751

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

hdu3015 Disharmony Trees(树状数组)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3015 题意:在路边有一行树,给出它们的坐标和高度,先按X坐标排序。记录排名,记为rankx,再按它们的高度排序,记录排名,记为rankh。 两颗树i,j的差异度为fabs(rankx[i]-rankx[j])*min(rankh[i],rankh[j]),最后求出任异两颗树差异度的和。(注意:有并

fire__ice的专栏 716

hdu 4288 Coder (线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4288 题意:对一个集合,更确切地说是数组吧,第步有三种操作:1、添加一个数x,2、删除一个数x,3、询问数组中下标index对5取余为3的所有无素的和。 添加一个数时,保证集合中不含此数,同样删除时保证含有此数。 解析:这道题目需要维护5颗线段树,sum[ 5 ]分别表示区间内下

fire__ice的专栏 676

hdu 4417 Super Mario(哈希表+树状树组)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意:给出一个长度为n的数列,询问m次,L到R之间不大于H的数的个数。 解析:暴力是没戏,考虑的时候我们希望得到这样的数据,array[i]表示i个元素之前小于H的元素个数(对任意H),这样每次询问结果就是array[R]-array[L],用求逆序数的思想,利用树状数组可以求出在第

fire__ice的专栏 502
上一篇: hdu 4267 A Simple Problem with Integers(线段树)
下一篇: hdu3015 Disharmony Trees(树状数组)
fire__ice
博客等级 码龄15年 26粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值