HDU1214_逆序数的性质

1.题目链接。其实这个题就是考察一个逆序数的性质,并且推广了。首先逆序数就是这样的数:i>j但是ai<aj.这样的一对i,j叫做一对逆序数。逆序数有很多应用,其实很重要的一个应用就是用来定义行列式的值。这个暂时先不说,其实两个相对序列的逆序数的总数是一定的。比如12345与54321他们的逆序数之和是C(5,2)。这里考的就是这样的问题,所以把12345转换成54321需要C(5,2)次,但是在圆上由于左右是对称的,我们可以分成两个部分,n/2与n-n/2.有人可能会粗心的认为就是两倍的n/2,其实并不是,因为n-n/2不一定等于n/2.嘻嘻,多注意这里的细节。代码很简单:

#include"stdafx.h"
#include<iostream>
#pragma warning(disable:4996)
#define ll long long
ll get(ll n)
{
	return n * (n - 1) / 2;
}
int main()
{
	int n;
	while (~scanf("%d", &n))
	{
		ll res = get(n / 2) + get(n - n / 2);
		printf("%lld\n", res);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值