分治
文章平均质量分 53
chen_minghui
这个作者很懒,什么都没留下…
展开
-
51nod 1019 逆序数 归并排序求逆序数
题目:链接 思路:在每一小段中,归并总是拿两个已排序的序列然后合并,有序序列是升序的,如果一旦出现左边的数字大于右边的数字,那么后面的一段都大于它,构成的逆序数贡献是 mid-i+1 ,也就是一段大于右边的数的个数#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<c原创 2017-08-01 09:52:26 · 237 阅读 · 0 评论 -
codeforces 399 B. Code For 1 归并
题意:给一个数n,和一个区间[l,r].数n可以做样的变化n=> n/2,n%2,n/2 生成一个序列。如果序列中有大于等于2要继续生成,直到全部数小于2.求区间l,r上1的个数#include#include#include#include#include#include#include#include#include#include#define cle(a) me原创 2017-07-27 12:36:17 · 324 阅读 · 0 评论 -
hud 1003 max sum 算法导论学习
题意:找出数列中最大子数列,如果有多个则输出第一个分治法:对于一个数组a[low..high]:最大子数组a[i...j]必然所处的位置是一下三个情况之一:1.完全位于子数组a[low..mid]中,因此low2.完全位于子数组a[mid+1...high]中,因此mid3.跨越了中点,因此low对于一个数组a[low...high],求出跨越中点的最大子数组,分解为两个子数组原创 2016-10-01 15:36:17 · 654 阅读 · 0 评论