POJ 2299题解

编程入门 行业动态 更新时间:2024-10-08 14:41:43

POJ 2299<a href=https://www.elefans.com/category/jswz/34/1769599.html style=题解"/>

POJ 2299题解

没什么卵用的目录

  • 原题地址
  • AC代码
  • 题解和题目思路

原题地址

这是地址

AC代码

#include <iostream>
#include <algorithm>using namespace std;long long int merge(long long int *list,long long int op,long long int ed){if(op==ed)return 0;long long int counter =0;counter+=merge(list,op,(op+ed)/2);counter+=merge(list,(op+ed)/2+1,ed);long long int x[ed-op+1];long long int i,j,it;i=op;j=(op+ed)/2+1;it = 0;while(i!=(op+ed)/2+1&&j!=ed+1){if(list[i]<=list[j]){x[it]=list[i];i++;}else{counter+=(op+ed)/2-i+1;x[it]=list[j];j++;}it++;}while(i!=(op+ed)/2+1){x[it]=list[i];i++;it++;}while(j!=ed+1){x[it]=list[j];j++;it++;}for (long long int k = op; k <=ed ; ++k) {list[k]=x[k-op];}return counter;
}int main() {ios::sync_with_stdio(false);long long int n;while(cin>>n,n!=0){long long int counter = 0,list[n];for (long long int i = 0; i < n; ++i) {cin>>list[i];}counter = merge(list,0,n-1);cout<<counter<<endl;}return 0;
}

题解和题目思路

这道题原本我还想故技重施1804的套路的,结果大失败,TLE,O(N2)不行,冒泡只会比这个更慢,那我们就只能请出来高级冒泡:Merge了。然后剩下的你们就去找Merge的实现原理好了(滑稽)记得统计交换的次数

更多推荐

POJ 2299题解

本文发布于:2024-02-19 18:35:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765372.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:题解   POJ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!