segment_tree
coder_coder_coder
默默的程序猿
展开
-
hoj2681Magic-Pen1
//感谢模板和 wawawawa原创 2014-08-06 22:36:24 · 419 阅读 · 0 评论 -
2795Billboard segment_tree
#include #include #include #define lson l,m,rt<< 1 #define rson m+1,r,rt <<1 | 1 using namespace std; const int N=2200100; long long mx[N<<2]; int h,w; //按序号来说,左边的小于右边的,而题中要求选尽量小的,左边优先权大于右边 void pu原创 2014-08-14 23:06:06 · 365 阅读 · 0 评论 -
poj2828Buy Tickets segment_tree
//后面的点优先权高,思路详解http://www.cnblogs.com/CheeseZH/archive/2012/04/29/2476134.html #include #include #include #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; const int N=200005;原创 2014-08-14 23:07:34 · 334 阅读 · 0 评论 -
hdu1698Just a Hook segment_tree
#include #include #include #define lson l,m,rt <<1 #define rson m+1,r,rt << 1 |1 using namespace std; const int N=100005; int sum[N << 2]; int lazy[N<<2]; void pushup(int rt){ sum[rt]=sum[rt<<1原创 2014-08-14 23:03:26 · 292 阅读 · 0 评论 -
hdu1394Minimum Inversion Number_forces(segment_tree)
//线段树,后面有暴力解法 /*首先要知道如何求一个序列的逆序数,比如2514 : 2之前没有数大于它,所以为0, 5之前也没有数大于它,所以为0, 1之前2,5都大于它,所以为2, 4之前只有5大于它,所以为1, 因此2514的逆序数为:0 + 0 + 2 + 1 = 3; 从前面的描述中,我们可以发现,只要依次累计前面有几个数大于当前数即可。 于是我们可以用一个数组b[n](初始化为0)原创 2014-08-14 23:05:00 · 309 阅读 · 0 评论