划分树
文章平均质量分 78
jason_star
我要变强!
展开
-
【HDU】4417 Super Mario(划分树+二分)
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; #define MAX 100050 #define m (l+r)>>1 int tree[30][MAX]; int toleft[30][MAX]; int sorted[MAX]; int n, k; void b原创 2015-03-30 23:14:21 · 453 阅读 · 0 评论 -
【HDU】2665 求第k小的数
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; #define MAX 100011 #define ls rt<<1 #define rs ls|1 #define m (l+r)>>1 int tree[30][MAX]; int sorted[MAX]; int原创 2015-03-30 23:17:25 · 522 阅读 · 0 评论 -
HDU 3473 Minimum Sum (划分树)
思路:这道题目可以说,只有你真正理解了划分树之后,你才会想到如何去做. 首先这道题的数学思路是很容易想的. 要使得数学式子的和最大,很明显.这个x是这个区间按从小到大排列之后最中间的数. 所以最后的答案应该是中位数右边的和减去左边的和然后假如这个区间的数的个数为偶数个的话,还需减去一个中位数. 所以这道题除了要记录划分树之外,还用sum[20][MAX]来记录前缀和. 写划分树实在是要细原创 2015-03-31 21:22:15 · 385 阅读 · 0 评论 -
Boring Counting (2013山东省赛)(划分树+二分)
思路:建立一棵划分树,然后在区间里面二分,寻找最大的小于a的数是第几小的,以及寻找最大的小于等于b的数是第几小的 两个相减就是答案了。 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; #define MAX 100050 #define m (l+r)>>1 int原创 2015-04-07 17:43:50 · 561 阅读 · 0 评论