14级组队赛第一场3317- 反演
来源:互联网 发布:图书馆可视化数据工具 编辑:程序博客网 时间:2024/05/17 04:56
思路:
归并排序然后减去K
CODE
#include<stdio.h>#include<string.h>#include<stdlib.h>#define NN 500004#define NL 1000long long res;int b[NN]; // 中间辅助数组int ls[NN];void copy(int l, int r){ int i; for(i = l; i <= r; i++) ls[i] = b[i];}void merge(int l, int mid ,int r){ int i = l; int j = mid+1; int k = l; while(i <= mid && j <= r) { if(ls[i] <=ls[j]) { b[k++] = ls[i]; i++; } else { b[k++] = ls[j]; j++; res += mid-i+1; } } while(i <= mid) { b[k++] = ls[i]; i++; } while(j <= r) { b[k++] = ls[j]; j++; }}void mergesort(int l, int r){ if(l < r) { int mid = l+(r-l)/2; mergesort(l,mid); mergesort(mid+1,r); merge(l,mid,r); copy(l,r); }}int main(){ int n, k; while(~scanf("%d%d",&n,&k)) { int i; res = 0; for(i = 1; i <= n; i++) scanf("%d",&ls[i]); mergesort(1,n); res = res - k; if(res < 0) res = 0; printf("%lld\n",res); } return 0;}
0 0
- 14级组队赛第一场3317- 反演
- 14级组队赛第一场3319 A simple water problem
- 组队赛第一场线段树
- 随机组队_第一场
- 省赛选拔赛——组队赛第一场
- 2015.9.4第三场组队赛
- 省赛选拔赛——组队赛第二场
- 省赛选拔赛——组队赛第三场
- 省赛选拔赛——组队赛第四场
- 组队赛第二场:字符串哈希+DP
- 组队赛第四场:最小生成树变形
- 组队赛第六场:贪心+RMQ加二分
- 2015.9.1组队赛第2场1003
- 2015.9.4组队赛第3场1005
- 第九周周赛——周赛兼组队赛第一场题解(出自HDU5443,本oj,HDU 5667,poj1742,codeforces 664A,BUNOJ 28199)
- 第一场积分赛
- 14级组队 1-SDUT3322
- acm新生赛第一场
- POJ - 1308 Is It A Tree?(并查集+dfs)
- IDisposable接口
- 最近总结关于找iOS的工作的体会,大家可以补充
- Redis的图形界面管理工具phpRedisAdmin
- string object to oracle check
- 14级组队赛第一场3317- 反演
- UIImageview 模糊、高斯模糊
- Android开发入门(初学)
- Java中堆内存与栈内存分配浅析
- 学习笔记--进程及线程间通信方式的区别及联系
- QQ中未读气泡拖拽消失的实现分析
- SpringMvc[学习手记]-框架搭建
- 使用Uncrustify在Xcode中格式化Objective-C代码
- linux 查找文件或目录