Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > » 正文

POJ 2299

来源: 未知 分享至:

代码中注释处被我弄反了。这题这么水,这要在比赛中又是罚时就杯具了!~

\"\"View Code  1 /*
 2 *   time: 2011/07/31
 3 *   author: thelastlaw
 4 *   style: C Language
 5 *   求逆序数,归并排序。超int,用long long水过
 6 *   50w的平方超int。。。注意数据范围 
 7 */
 8 
 9 #include<cstdio>
10 #define MAX 1000000000
11 #define N 500005
12 
13 long long a[N],b[N],c[N];
14 
15 inline long long Merge(int p,int q,int r)
16 {
17     long long cnt = 0 ;
18     for(int i=p;i<=q;i++)
19         b[i] = a[i];
20     for(int i=q+1;i<=r;i++)
21         c[i] = a[i];
22     b[q+1= c[r+1= MAX;
23     int bb = p, cc = q+1;
24     for(int i=p;i<=r;i++)
25     {
26         if(b[bb] <= c[cc])   //求逆序 需要写成<=
27         {
28             a[i] = b[bb++];
29         }
30         else
31         {
32             a[i] = c[cc++];
33             cnt += (q+1 - bb);
34         }
35     }
36     return cnt;
37 }
38 
39 long long MergeSort(int p,int r)
40 

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史