HD1394 Minimum Inversion Number
这道题目的意思是:给你一个序列,统计一开始的逆序数的个数,然后依次把第一个元素放到序列末尾,求每次的逆序数个数,求出每次求逆序数里,逆序数最小的那个数
这里需要推一个递推式,就是每次你把第一个元素放到末尾后,逆序数个数是怎么改变的
假如第一次求出的逆序数为 a,则下次逆序数个数为 a = a + n - 2 * arr[i] - 1;我是简单的验证别人的结论。。。大家可以试着推下
#include <cstdio>
#include <iostream>
#include <cstring> using namespace std; const int MAXN = 1e5 + ; int main()
{
int n;
int i, j;
int arr[MAXN];
while(cin >> n)
{
int sum = ;
for(i = ; i < n; ++i)
{
for(cin >> arr[i], j = ; j < i; ++j )
{
if(arr[i] < arr[j])
sum++;
}
} int minn = sum;
for(i = ; i < n; ++i)
{
if(minn > (sum = sum+n - *arr[i] - ))
{
minn = sum;
//cout << minn << endl;
}
}
cout << minn << endl;
}
return ;
}
还可以通过树状数组、线段树、归并排序求逆序数(这道题暴力就能过)
HD1394 Minimum Inversion Number的更多相关文章
- HDU 1394 Minimum Inversion Number ( 树状数组求逆序数 )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number ...
- HDU 1394 Minimum Inversion Number(最小逆序数 线段树)
Minimum Inversion Number [题目链接]Minimum Inversion Number [题目类型]最小逆序数 线段树 &题意: 求一个数列经过n次变换得到的数列其中的 ...
- HDU 1394 Minimum Inversion Number(最小逆序数/暴力 线段树 树状数组 归并排序)
题目链接: 传送门 Minimum Inversion Number Time Limit: 1000MS Memory Limit: 32768 K Description The inve ...
- ACM Minimum Inversion Number 解题报告 -线段树
C - Minimum Inversion Number Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d &a ...
- 【hdu1394】Minimum Inversion Number
Problem Description The inversion number of a given number sequence a1, a2, ..., an is the number of ...
- [hdu1394]Minimum Inversion Number(树状数组)
Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...
- HDU-1394 Minimum Inversion Number 线段树+逆序对
仍旧在练习线段树中..这道题一开始没有完全理解搞了一上午,感到了自己的shabi.. Minimum Inversion Number Time Limit: 2000/1000 MS (Java/O ...
- Minimum Inversion Number
Minimum Inversion Number Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- 逆序数2 HDOJ 1394 Minimum Inversion Number
题目传送门 /* 求逆序数的四种方法 */ /* 1. O(n^2) 暴力+递推 法:如果求出第一种情况的逆序列,其他的可以通过递推来搞出来,一开始是t[1],t[2],t[3]....t[N] 它的 ...
随机推荐
- cmd for备忘
=============参数 /d (参数只能显示当前目录下的目录名字)=================== rem 显示d:\work\目录下与*.txt相匹配的文件(如果报错就%i-> ...
- React之JSX入门
React是由ReactJS与React Native组成,其中ReactJS是Facebook开源的一个前端框架,React Native 是ReactJS思想在native上的体现! JSX并不是 ...
- iOS 获取当前展示的页面
- (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWindow * window = [[UIApplica ...
- php 关联数据库的留言板练习
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 与你相遇好幸运,Sails.js自定义responses
在 /api/responses/ 新建文件 >serviceDBError.js 自定义的数据库错误 >serviceError.js 自定义的数据错误 >serviceSucc ...
- 【Java EE 学习 20】【使用过滤器实现登陆验证、权限认证】【观察者模式和监听器(使用监听器实现统计在线IP、登录IP 、踢人功能)】
一.使用过滤器实现登录验证.权限认证 1.创建5张表 /*使用过滤器实现权限过滤功能*/ /**创建数据库*/ DROP DATABASE day20; CREATE DATABASE day20; ...
- 【PHP对XML文件的操作技术【完整版】】
无论是c/c++还是java.c#均有对XML文件操作的技术,PHP对XML文件的操作的技术主要有三种: DOM.XPath.SimpleXml. 一.DOM DOM:Document Object ...
- 浅析配置更快的Eclipse方法
很多人感觉自己的elipse启动比较慢,其实并不是因为装的插件太多或者是导入的项目有点大,而是因为参数的设置不合理导致的.可以在eclipse.ini里面添加-Xloggc:gc.log看看启动的日志 ...
- 常用的Java代码汇总
1. 字符串有整型的相互转换 Java 1 2 <strong>Stringa=String.valueOf(2); //integer to numeric ...
- elementar OS体验
关于其说明请参考https://linuxtoy.org/archives/elementary-os-luna.html