hdu1394 逆序数?
2015-08-02 13:11
288 查看
题目输入是n,然后输入0 ……n-1乱序,所以这题就简单了,直接找到第一个序列的逆序数sum,然后每后移一个数后的逆序数等于sum - a[i](代表该数据会产生的逆序数) + (N - a[i] - 1 );
sum - a[i] + (N - a[i] - 1);
#include <iostream> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> using namespace std; int dp[10010]; int a[10010]; int main() { int N ; while(scanf("%d" , &N )!= EOF) { for(int i = 1 ; i <= N ; i ++ ) scanf("%d", &a[i]); memset(dp,0,sizeof(dp)); for(int i = 1 ; i <= N ; i ++ ) { for(int j = 1 ; j < i ; j ++ ) { if(a[i] < a[j]) dp[i] ++ ; } dp[i] += dp[i-1]; } int minn = dp ; int sum = dp ; for(int i = 1 ; i <= N ; i ++ ) { sum = sum - a[i] + (N - a[i] - 1); if(sum < minn) minn = sum; } printf("%d\n" , minn); } return 0; }
相关文章推荐
- 队列( FIFO ) 循环队列
- 【LeetCode】232 & 225 - Implement Queue using Stacks & Implement Stack using Queues
- POSIX互斥锁
- C语言位域精解
- extern "C"解析
- java多线程--12
- logn 时间复杂度 计算整数 末尾0的个数
- 数据库范式——通俗易懂
- poj2385 dp
- DFS POJ 1321 棋盘问题
- 写在工作三个月后
- 百度数据挖掘实习工程师一、二现场面试(深圳)
- poj 3685 二分套二分
- 对 iOS 多任务的误解 [多任务原理]
- 阿里巴巴电话面试2面总结_数据挖掘工程师(天猫事业部)
- 百度NLP电面总结(数据挖掘)
- 多线程程序设计学习(12)Thread-soecific storage pattern
- 杭电2078复习时间
- maven 使用myeclipse建立maven项目
- springmvc 上传图片文件和创建图片虚拟路径读取图片