鱼C论坛

 找回密码
 立即注册
查看: 2357|回复: 1

poj2299自己运行正确,提交却是wrong answer,希望好心人帮忙找一下原因。万分感谢

[复制链接]
发表于 2014-10-8 21:58:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 勿语静候 于 2014-10-8 22:04 编辑

题目大意:

给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。



Input

59 1 0 5 4
31 2 3
Output
6
0
  1. </blockquote></div></div><p></p><div><div class="blockcode"><blockquote>#include<iostream>
  2. using namespace std;
  3. #define MAXSIZE 500000

  4. long long t;
  5. void merging(int* listL , int listL_size , int* listR , int listR_size)
  6. {
  7.         int i , j , k;
  8.         i = j = k =0;
  9.         int temp[MAXSIZE];
  10.         
  11.         while( i < listL_size && j < listR_size)
  12.         {
  13.                 if( listL[i] > listR[j])
  14.                 {
  15.                         temp[k++] = listR[j++];
  16.                         t+=listL_size - i;
  17.                 }
  18.                 else
  19.                 {
  20.                         temp[k++] = listL[i++];
  21.                 }
  22.         }
  23.         
  24.         while(i < listL_size)
  25.         {
  26.                 temp[k++] = listL[i++];
  27.         }
  28.         while(j < listR_size)
  29.         {
  30.                 temp[k++] = listR[j++];
  31.         }
  32.         
  33.         for(int m = 0; m < (listL_size + listR_size);m++)
  34.         {
  35.                 listL[m] = temp[m];
  36.         }
  37. }

  38. void mergeSort(int* k , int n)
  39. {
  40.         if(n > 1)
  41.         {
  42.                 int *listL = k;
  43.                 int listL_size = n / 2;
  44.                 int *listR = k + n / 2;
  45.                 int listR_size = n - listL_size;
  46.                
  47.                 mergeSort(listL , listL_size);
  48.                 mergeSort(listR , listR_size);
  49.                
  50.                 merging(listL , listL_size , listR, listR_size);
  51.         }
  52. }

  53. int main()
  54. {
  55.         int n;
  56.         while(cin >> n)
  57.         {
  58.                 t = 0;
  59.                 int* a = new int[n+1];
  60.                
  61.                 for(int i = 0 ; i < n ; i++)
  62.                 {
  63.                         cin >> a[i];
  64.                 }
  65.                
  66.                 mergeSort(a,n);
  67.                
  68.                 cout << t << endl;
  69.                
  70.                 delete a;
  71.         }

  72.         return 0;
  73. }
复制代码











小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2014-11-1 04:43:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 04:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表