摘要:
1 /* 2 题意让你求交换次序,实际求逆序对数即可 3 而归并排序时,刚好需要比较mid两边的数,所以只需在归并时累加即可 4 5 例:(归并时一定会排好小组内的顺序) 6 7 对应位置: i m j 8 对应数字: 4 5 6 1 2 3 9 10 4 > 1 -> ans += 3;//因为4为前半最小值,则前半部分所有元素符合要求(ans += m... 阅读全文
摘要:
1 /* 2 排序 之 归并排序 3 T(n) = O(nlogn) 4 通过分治思想,将数组不断二分 5 最后通过合并两组数据(合并数据时间复杂度为O(n))递归实现排序 6 不论什么情况,时间复杂度都为O(nlogn) 7 但是注意付出了开辟空间(t[maxn])的代价 8 */ 9 #include 10 using namespace std; 11 const i... 阅读全文
摘要:
1 #include 2 #include 3 using namespace std; 4 const int maxn = 105; 5 int s[maxn];//s[i]表示每行前i个数的和 6 int d[maxn];//d[i]表示每行取i个数时的最大价值 7 int f[10005];//限制数量为k个,往f中背,记录最大价值 8 int n,m,k; 9 i... 阅读全文