Codeforces Round #301 (Div. 2) E

【解题报告】Codeforces Round #301 (Div. 2) 简略的解题报告。 阅读详情

E Infinite Inversions

        一个无穷的数列1,2,3......进行n(n<=100000)次swap操作,问操作后的数列有多少逆序对。

        考虑到交换的数可能比较大,但是交换的次数相对少,可以用离散化解决。离散化以后,模拟一下操作。然后逆序对可以分为两部分考虑,一部分是被交换了的数之间的逆序对,另一部分是被交换的数与没交换的数之间的逆序对。在这个数列中,每个数是唯一的,用离散化后的值借助树状数组可以得出被交换了的数之间的逆序对(就是经典的逆序对求法)。除了用map存每个被交换的数的“名次”外,我们再开一个数组,根据“名次”可以找到相应的数,这样就可以利用名次计算出被交换的数与没交换的数之间的逆序对。具体见代码。

        感觉自己实力有所增强了,div2的场基本上都能出D,E也能赛后不借助外力A掉。


#include <bits/stdc++.h>  
using namespace std; 

#define ll long long
const int maxn=100010;


int a[maxn];
int b[maxn];
int c[maxn*2];
int _mp[maxn*2];

int cnt;
int cc[maxn*2];
int lowbit(int x){
	return x&(-x);
}

void update(int pos){
	while(pos<=cnt){
		cc[pos]++;
		pos+=lowbit(pos);
	}
}

int query(int pos){
	int re=0;
	while(pos){
		re+=cc[pos];
		pos-=lowbit(pos);
	}
	return re;
}

int main(){
	int n;
	cin>>n;
	map<int,int> mp;
	for(int i=1;i<=n;i++){
		scanf("%d%d",&a[i],&b[i]);
		mp[a[i]]=1;
		mp[b[i]]=1;
	}
	
	cnt=0;
	for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){
		it->second=++cnt;
		_mp[cnt]=it->first;
	}
	
	ll ans=0;
	for(int i=1;i<=cnt;i++){
		c[i]=i;
	}
	for(int i=1;i<=n;i++){
		swap(c[ mp[a[i]] ],c[ mp[b[i]] ]);
	}

	for(int i=1;i<=cnt;i++){
		ans+=c[i]-1-query(c[i]-1);
		
		//当前数 
		int num=_mp[ c[i] ];
		//交换前数 
		int ori=_mp[ i ]; 
		//前面未被交换的数中有tmp1个大于当前数 
		int tmp1=ori-num-(mp[ori]-mp[num]);
		//后面未被交换的数中有tmp2个小于当前数 
		int tmp2=num-ori-(mp[num]-mp[ori]);
		if( tmp1>0 ){
			ans+=tmp1;
		}
		if( tmp2>0 ){
			ans+=tmp2;
		}
		update(c[i]);
	}
	
	cout<<ans<<endl;
	
	return 0;
}


S4 Hana SD -信贷管理 - 02 在S4版本中,客户的信用管理数据在事务代码BP维护,业务伙伴角色是UKM000。在维护过程中,我们并不能直接输入信贷控制范围这个组织架构,而是需要输入一个信用段,并且在信用段的维度下去维护相应信用管理数据。对于信用段,可以分为主信用段(信用段是0000)和其他临时信用段,我们可以通过配置把次级信用段的客户信贷负债汇总到主信用段。当然,在后台也有配置,会把信用段和信贷控制范围这两者进行关联.3.2SPROIMG > 财务供应链管理 > 信用管理 > 信贷风险监视 > 主数据 > 创建信用段。 阅读详情

相关推荐

StarUML最新版汉化与破解二合一教程:5分钟搞定永久使用

本文提供StarUML最新版的高效使用指南,涵盖从安装到深度定制的全流程优化方案。包括软件获取最佳实践、界面个性化设置、核心建模技巧、团队协作策略及性能优化建议,帮助架构师和开发团队提升UML建模效率。特别推荐版本控制集成和文档自动化输出方案,适用于各类规模的项目开发。

weixin_42530732的博客 450

Codeforces Round #301 (Div. 2)

A - Combination Lock 题意: 给两个密码,为最小多少次能吻合。 思路: 对于每一位设a #include using namespace std; int main() { int n; char x[1234],y[1234]; while(cin>>n) { scanf("%s%s",x,y); int ans

Enmity_Dark 667

如何在windows下使用cmake编译源码

MyProject/└── build/在MyProject目录下创建并编辑。创建build目录并进入。使用cmake命令生成构建文件。使用适当的命令编译项目。运行生成的可执行文件。

cdj444asdg的博客 3345

Codeforces Round #FF (Div. 2) E.DZY Loves Fibonacci Numbers

E. DZY Loves Fibonacci Numbers time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output In mathematical terms, the s

qqspeed 1556

智能门禁:AI Agent的访客意图识别

随着人工智能技术的飞速发展,智能门禁系统已经成为现代安全管理的关键环节。本文深入探讨了AI Agent在访客意图识别中的应用,通过详细的分析和实例讲解,揭示了智能门禁系统的核心工作原理、算法实现及其在安全领域的重要作用。文章结构清晰,逻辑严谨,旨在为广大技术爱好者提供一次全面的技术盛宴。在当今社会,门禁系统已成为各类建筑和机构不可或缺的安全设施。随着信息安全意识的增强,传统门禁系统的局限性逐渐显现。例如,在访客管理方面,传统方法通常依赖于人工登记、身份验证等手段,不仅效率低下,而且容易出现漏洞。

AI架构师小马 707

Git下载与安装

一、Git下载 二、Git安装

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 6万+

Codeforces Round #301 (Div. 2)E(树状数组+离散化)

E. Infinite Inversions time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There is an infinite sequence consis

u013268685的专栏(有一种幸福叫AC,有一种期待叫AK) 1417

ATS Request中的PASID的作用是什么

摘要: PASID(进程地址空间标识符)是PCIe ATS(地址转换服务)中的关键组件,用于标识不同进程或虚拟机的地址空间。其主要作用包括:1)支持多进程共享设备时隔离地址空间;2)实现共享虚拟地址(SVA),允许用户态程序直接访问设备;3)提升虚拟化性能(如SIOV),通过PASID区分虚拟机请求;4)增强安全性,基于PASID限制设备内存访问权限。PASID通过20位标识符在TLP前缀中传递,与IOMMU协作完成地址转换与缓存,适用于高性能计算、AI及虚拟化场景,但依赖硬件支持和软件适配。

元直的博客 1561

Infinite Sequence

Description Vasya likes everything infinite. Now he is studying the properties of a sequence s, such that its first element is equal to a (s1 = a), and the difference between any two neighbouring elem

gaochubusheng的博客 686

【使用FPGA实现MIPI DSI接口】——如何使用FPGA实现MIPI DSI接口?这是一个让许多开发者都感到困扰的问题。本文将介绍如何使用FPGA设计和实现...

【使用FPGA实现MIPI DSI接口】——如何使用FPGA实现MIPI DSI接口?MIPI DSI(移动产业处理器接口 - 显示串行接口)是一种用于在移动设备中传输视频数据的标准接口,它是目前大部分智能手机和平板电脑所采用的显示接口。首先,我们需要实现MIPI DSI的物理层接口。在实现MIPI DSI接口后,我们还需要编写驱动程序来控制MIPI DSI显示屏显示图像。这里只是提供了MIPI DSI接口的物理层代码示例,完整的MIPI DSI接口实现需要包括控制器和驱动程序等更多内容。

uote_e的博客 1995

YOLOv11改进策略【损失函数篇】| 将激活函数替换为带有注意力机制的激活函数 ARelu

将ELSA中的函数Φ\PhiΦ用具有可学习参数α\alphaα和β\betaβ的网络层表示为LxiαβCαxixi0σβxixi≥0Lxi​αβCαxi​σβxi​​xi​0xi​≥0​,结合标准的Rectified Linear UnitsRxi0xi0xixi≥0Rxi​0xi​​xi​0xi​≥0​,得到可学习激活函数Fxiα。

Limiiiing的博客 2117

Codeforces Round #FF (Div. 2) A. DZY Loves Hash

A. DZY Loves Hash time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output DZY has a hash table with p buckets, numbe

chaoyueziji123的专栏 1421

在 SAP BTP 中玩转工厂日历 Maintain Factory Calendars 实战指南

工厂日历是企业关键的时间主数据,基于国家假日历定义工作日与非工作日,广泛应用于生产计划、采购交期、财务结账等业务场景。SAP系统通过三类应用(维护节假日、假日历和工厂日历)实现分层配置。工厂日历作为顶层配置,支持工作日模式设定和例外规则添加。在多系统架构中,工厂日历可通过集成场景同步,确保数据一致性。应用支持创建、编辑和查看功能,包含有效期设置、例外规则管理和多语言文本维护。合理设置工厂日历对业务运营至关重要,需注意命名规范和有效期选择,避免历史数据问题。

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

【Codeforces Round #301 (Div. 2) E】Infinite Inversions

【链接】 我是链接,点我呀:) 【题意】 给你一个无限长的序列1,2,3,4... 然后给你n个操作. 每个操作ai,bi; 表示调换位置为ai和位置为bi的数的位置。 (ai,bi<=10^9) n个操作结束之后,问你序列中逆序对的个数. 【题解】 肯定和数据结构相关的。 那么大,首先离散化一下。 然后用离散化后的数字来模拟这个swap的过程。 这样,就能够获取出...

96

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Codeforces Round #301 (Div. 2)E. Infinite Inversions(思维+树状数组)

题目链接:https://codeforces.com/contest/540/problem/E   题目大意:有一个无限的序列,给出n个交换,问逆序对个数   题目思路:难点在于没有参与交换的点如何处理。该题可将没使用的这段区间看做点,先记录所有参与交换的点, 然后进行离散化,如果相邻的点之间还有数字,就将这些数字缩成一个点。然后更新时,d[i]存的是之前有多少比d[i]大的数字,由于...

smilestruggler_Fly To Higher 292

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Codeforces Round #301 (Div. 2) A,B,C,D,E题解

最近状态极差...想用这套题练手结果B C都FST了... 一开始2分钟切掉A我还以为会很顺利... ---------------------------------------------------------------------------------------------------------------------------------------------------

lqybzx的专栏 660

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Codeforces Round #301 (Div. 2)-E. Infinite Inversions

原题链接 E. Infinite Inversions time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There is an infi

L. 341

Codeforces Round #301 (Div. 2) E. Infinite Inversions (分类讨论 逆序对)

题目链接 今天注定是不能补掉了,先把理解到的思路写一些。 一、题意 有一个无限长的序列{1, 2, 3, 4, ...}。现在给出n个操作,每个操作由a[i]和b[i]构成,表示第a[i]个数将和第b[i]个数交换位置。n不超过1e5,a[i]和b[i]不超过1e9。求操作后产生的逆序对总数。 二、思路 从官方题解(见E题部分)里面看了个大概,是将问题区分成两个部分。 可以知道,如果两...

xuzonghao的博客 265

树状数组Codeforces Round #301 (Div. 2) E - Infinite Inversions

E. Infinite Inversions time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There is an infinite sequence consisting of al

龙崎的专栏 753

Codeforces Round #301 (Div. 2) -E(逆序对问题)

本题的意思是给出一个无限长的(1,2,3,4.....) 的序列,给出n对数,交换该以该对数为下标的位置的值。求交换完以后的逆序对。 那么,由于数据范围为n 考虑分开求被改变位置数的相对逆序    和  每个被改变位置数和未被改变位置数的逆序。 那么,被改变位置地数,离散化一下,用树状数组,或者是归并排序求一下相对逆序对。 而第二种逆序。则是对每个值,在最后被改动序列里有一个位置rank1

playwfun的专栏 525

Codeforces Round #301 (Div. 2)——A.B.C.D.E

A. Combination Lock 有两种旋转方式#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; string s1,s2; cin>>s1>>s2; int ans=0; int a,b; for(int i=0;i<n;++i){

fsdcyr 423

Codeforces Round #301 (Div. 2) E . Infinite Inversions 树状数组求逆序数

E. Infinite Inversions time limit per test...

weixin_30436891的博客 139

Codeforces Round #131 (Div. 2) 完整题解

转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents           by---cxlove 第一次进入DIV1,果断被虐,没法下手。赛后先把DIV2解决了吧 A. System of Equations 问a*a+b=m  a+b*b=n,的解a,b,有多少组,因为a,b都非负,而且m和n的范围在1000以内,直接

窝不是爱酱,喵~~~~ 2411

DFS/BFS Codeforces Round #301 (Div. 2) C. Ice Cave

题目传送门 1 /* 2 题意:告诉起点终点,踩一次, '.'变成'X',再踩一次,冰块破碎,问是否能使终点冰破碎 3 DFS:如题解所说,分三种情况:1. 如果两点重合,只要往外走一步再走回来就行了;2. 若两点相邻, 4 那么要不就是踩一脚就破了或者踩一脚走开再走回来踩一脚破了;3. 普通的搜索看是否能到达, 5 若...

weixin_34235105的博客 137

贪心 Codeforces Round #301 (Div. 2) A. Combination Lock

题目传送门 1 /* 2 贪心水题:累加到目标数字的距离,两头找取最小值 3 */ 4 #include <cstdio> 5 #include <iostream> 6 #include <algorithm> 7 #include <cstring> 8 using namespace std; ...

weixin_33877092的博客 97
上一篇: Codeforces Round #301 (Div. 2) 解题报告(ABCD)
下一篇: FZU 2129 子序列个数
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值