066day(求排列的逆序数的尝试)
来源:互联网 发布:小麦淘商城 知乎 编辑:程序博客网 时间:2024/05/19 17:56
172210704111-陈国佳总结《2017年12月15日》【连续066天】
标题:求排列的逆序数的尝试;
内容:
尝试通过分治解决此题:
#include<iostream>
#include<algorithm>
using namespace std;
void Merge(int a[],int s,int m,int e,long long&NUM)
{
sort(a+s,a+m+1,greater<int>());
sort(a+m+1,a+e+1,greater<int>());
int p1=s,p2=m+1;
while(p1<=m &&p2<=e){
if(a[p1]<=a[p2])++p2;
else if(a[p1]>a[p2]){
for(int i=p2;i<=e;i++){
NUM++;
}
p1++;
}
}
}
long long MergeCount(int a[],int s,int e,long long&NUM)
{
if(s<e){
int m=s+(e-s)/2;
MergeCount(a,s,m,NUM);
MergeCount(a,m+1,e,NUM);
Merge(a,s,m,e,NUM);
}
return NUM;
}
int main()
{
int n;
long long NUM=0;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
int size=sizeof(a)/sizeof(int);
cout<<MergeCount(a,0,size-1,NUM)<<endl;
return 0;
}
显示超时,暂时没有好的解决办法。
明日计划:复习;
- 066day(求排列的逆序数的尝试)
- 065day(求排列的逆序数)
- 求排列的逆序数
- 求排列的逆序数
- 求排列的逆序数
- 求排列的逆序数
- 求排列的逆序数
- 071day(求排列的逆序数的解决和分治例题(最长公共子序列)的学习)
- 求排列的逆序数<归并><C++>
- 百练 求排列的逆序数
- 7622:求排列的逆序数
- 分治之求排列的逆序数
- java实现求排列的逆序数
- poj求排列的逆序数
- 0811 OpenJ#求排列的逆序数
- 递归算法(归并排序):求排列的逆序数
- 排列的逆序数
- Kendall tau距离:求两个排列之间的逆序数
- 用结构体数组写的通讯录
- leetcode 480. Sliding Window Median 滑动窗口中位数
- 数论——素数
- ssl1056-金明的预算方案【dp之有依赖的背包】
- 机器学习面试1000题 1
- 066day(求排列的逆序数的尝试)
- 拦截器
- 浅析Android中MVP及Demo
- ros功能包和机器人
- 高颜值生物信息在线绘图工具
- 一个HTML简单实例
- thinkphp5出现 No input file specified 咋办??
- ajax成功回调失灵,页面刷新 表格增删改查 并向后端传值 踩坑+实例
- 某公司java 面试题(二)