Frosh Week HDU3743(逆序数)
离散化加 求逆序数:
求逆序数的方法 一个是归并排序 一个是树状数组
#include<bits/stdc++.h>
using namespace std;
int n;
struct node
{
int v;
int id;
}s[];
int c[];
bool cmp(node a,node b)
{
return a.v<b.v;
}
int lowbit(int i)
{
return i&-i;
}
int update(int x,int v)
{
while(x<=n)
{
c[x]+=v;
x+=lowbit(x);
} }
int sum(int x)
{
int ans=;
while(x>)
{
ans+=c[x];
x-=lowbit(x);
}
return ans;
}
int main()
{
while(scanf("%d",&n)==)
{
memset(s,,sizeof(s));
memset(c,,sizeof(c));
for(int i=;i<=n;i++)
{
s[i].id=i;
scanf("%d",&s[i].v);
}
sort(s+,s+n+,cmp);
long long ans=;
for(int i=;i<=n;i++)
{
update(s[i].id,);
ans+=i-sum( s[i].id );
}
printf("%lld\n",ans);
}
return ;
}
Frosh Week HDU3743(逆序数)的更多相关文章
- Frosh Week(归并排序求逆序数)
		H - Frosh Week Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Desc ... 
- HDU 3743 Frosh Week(归并排序求逆序数)
		归并排序求逆序数 #include <iostream> #include <cstdio> using namespace std; #define maxn 1000005 ... 
- HDU3465 树状数组逆序数
		Life is a Line Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)T ... 
- HDU 1394 Minimum Inversion Number(最小逆序数 线段树)
		Minimum Inversion Number [题目链接]Minimum Inversion Number [题目类型]最小逆序数 线段树 &题意: 求一个数列经过n次变换得到的数列其中的 ... 
- 递归O(NlgN)求解逆序数
		导言 第一次了解到逆序数是在高等代数课程上.当时想计算一个数列的逆序数直觉就是用两重循环O(n^2)暴力求解.现在渐渐对归并算法有了一定的认识,因此决定自己用C++代码小试牛刀. 逆序数简介 由自然数 ... 
- FZU 2184 逆序数还原
		传送门 Description 有一段时间Eric对逆序数充满了兴趣,于是他开始求解许多数列的逆序数(对于由1...n构成的一种排列数组a,逆序数即为满足i<j,ai>aj的数字对数),但 ... 
- HDU 1394 Minimum Inversion Number(最小逆序数/暴力  线段树  树状数组  归并排序)
		题目链接: 传送门 Minimum Inversion Number Time Limit: 1000MS Memory Limit: 32768 K Description The inve ... 
- poj 1007:DNA Sorting(水题,字符串逆序数排序)
		DNA Sorting Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 80832 Accepted: 32533 Des ... 
- POJ 2299 Ultra-QuickSort 逆序数 树状数组 归并排序 线段树
		题目链接:http://poj.org/problem?id=2299 求逆序数的经典题,求逆序数可用树状数组,归并排序,线段树求解,本文给出树状数组,归并排序,线段树的解法. 归并排序: #incl ... 
随机推荐
- WPS, 破解WPA/WPA2密钥的捷径
			1.关于WPS(WIFI保护设置) WPS(WIFI保护设置)主要致力于简化无线网络的安全加密设置. 传统方式下,用户新建一个无线网络时,必须在接入点手动设置网络名(SSID)和安全密钥,然后在客户端 ... 
- elasticsearch 基本配置
			基本配置elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml .logging.yml.jvm.options 第一个是es的基本配置文件,第二个是日志 ... 
- 第14月第23天 uitextfield文字下移
			1. http://www.jianshu.com/p/641a0cbcabb0 
- adb查看安卓设备系统Android版本
			adb shell getprop "ro.build.version" 结果中如下两项便是版本信息: [ro.build.version.release]: [4.4.4][ro ... 
- 文件打包(.zip)并返回打压缩包存放路径
			1.由于公司需要将一个或多个视频进行打包,格式如下图: 2.创建zipUtil工具包: package com.seegot.util; import java.io.BufferedOutputSt ... 
- nodejs 使用mysql 进行查询的问题
			因为返回的是个对象 var selectSql1="select * from spc_word_mst where WORD_ID=? limit 0,1 "var select ... 
- java并发编程系列四、AQS-AbstractQueuedSynchronizer
			什么是AbstractQueuedSynchronizer?为什么我们要分析它? AQS:抽象队列同步器,原理是:当多个线程去获取锁的时候,如果获取锁失败了,当前线程就会被打包成一个node节点放入 ... 
- echarts地图显示不正常问题
			echarts2内置地图,而echarts3无内置地图,需要自己下载并导入. 在刚开始接触地图的时候,使用dreamweaver来构建页面,使用的编码不是UTF-8 代码是按照官方的拷贝下来的(我使用 ... 
- Linux中 Lua 访问Sql Server的配置方法
			一.背景说明: 通过lua脚本实现对SQL Server数据库的操作. 二.具体设定: 安装流程图:如果是使用Lua连接SQL Server,从上到下则需要安装lua -> luaSQL-ODB ... 
- eclipse:刪除空行
			ctrl+F:選擇正則,輸入:^\s*\n ,點擊 replace all. 
