![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
yueqiq
这个作者很懒,什么都没留下…
展开
-
hdu 1166 敌兵布阵
线段树的模版 没什么思想#include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define Vi vector#define Si set#def原创 2012-05-27 14:32:35 · 274 阅读 · 0 评论 -
poj2525 Mayor's posters
线段树+离散化,因为每个结点代表的不是一个点,而是一段,所以把每个线段的后端点+1,形成【x1,x2)的半开半闭区间,。。。。code#include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2012-08-01 18:32:14 · 355 阅读 · 0 评论 -
tyvj 1427 小白逛公园
对我这种弱菜来说挺难的,算是抄的代码吧#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long lon原创 2012-06-05 13:01:58 · 915 阅读 · 0 评论 -
poj 3468 A Simple Problem with Integers
区间成段更新的问题,虽然明白了,但是却感觉写不出什么东西来,还是得多做点题加深感悟#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2012-06-02 15:37:38 · 277 阅读 · 0 评论 -
poj 2886 Who Gets the Most Candies?
写代码的时间长达3个半小时,当然没刨去中间吃饭什么的........思路:先直接dfs求出最大的 p 和 f(p) 这里用到了反素数,详解请看zoj 2562那篇文章,里面有解释然后就是用线段树模拟约瑟夫,但是悲剧的是我没太搞懂出圈顺序,此处系参考而来....................code#include #include #include原创 2012-05-31 18:39:54 · 307 阅读 · 0 评论 -
hdu 1698 Just a Hook
还是线段树,区间更新问题,第一次接触,没太搞透,但感觉不是难理解,明天在草稿上模拟下code#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2012-05-31 23:24:26 · 294 阅读 · 0 评论 -
poj 3264 Balanced Lineup
本来想刷刷水题,结果刷出问题来了,查询区间自己还是没有彻底弄透,警告!!#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #d原创 2012-05-30 23:40:06 · 228 阅读 · 0 评论 -
poj 2828 Buy Tickets
此题跟poj 2182基本一样,请看我的2182的那篇博客讲的很清楚代码改动在20个字符左右........#include #include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2012-05-30 18:04:50 · 452 阅读 · 0 评论 -
poj 2182 Lost Cows
用数组a[]记录第i头牛之前有多少头序号比它小的牛,则最后一头牛n的序号肯定是a[n]+1(因为所有的牛都在它前面);倒数第二头牛的编号肯定是把倒数第一的牛的编号删去后排在第a[n-1]+1的位置上;依次类推样例分析一下:编号 1 2 3 45;数据 0 1 2 10;最后一头编号肯定是 1;然后把 1 删除掉编号 2 3 4 5;倒数第二头的编号 就是原创 2012-05-30 17:40:42 · 323 阅读 · 0 评论 -
hdu 2795 Billboard
代码依然参考胡浩神:说说思路吧,因为n最大有20W,所以可以把每一行当作线段树的叶子(因为n可能小于h,所以只需要最小的那个建树就可以了),每一个叶子的值则是w;要保证 announcements 是贴在最上面的,而且是最左边的(这点无需考虑,因为是按照读入的顺序来的),要保证是贴在最上面,所以优先向左子树搜索,即当前结点的左子树值(代表左子树下有叶子的值是大于wi的)大于wi,就搜索左子原创 2012-05-29 21:04:52 · 289 阅读 · 0 评论 -
hdu1394 Minimum Inversion Number
此题对于我来说甚是巧妙啊 ,线段树可以这么用,这次参考了胡浩神的线段树写法:对于此题:1. 求出原始序列的逆序数2. 当把第i个数移动到序列末尾时,原来小于a[i]的逆序数数将不在是逆序数,大于a[i]的非逆序数将成为逆序数显然在(0---n-1)序列中,比它小的数有a[i]个(0---a[i]-1);比它大的数有n-a[i]-1个(a[i]+1----n-1);下面解原创 2012-05-28 23:50:08 · 272 阅读 · 0 评论 -
hdu 1754 I Hate It
#include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define Vi vector#define Si set#define readf fr原创 2012-05-27 14:39:42 · 236 阅读 · 0 评论 -
hdu4882 Coder
基本上算是抄的代码。。。。线段树,维护一个sum数组,sum数组存的是当前区间段以第1-5个数为起点的间隔为5的数的总和离线化处理也是以前从没有见过的code:#include #include #include #include #define LL __int64using namespace std;const int MAXN = 110005;struct原创 2012-09-27 19:41:36 · 355 阅读 · 0 评论