线段树
文章平均质量分 79
jijijix
这个作者很懒,什么都没留下…
展开
-
codeforces round353 tree construction
/* 题目描述:按照数列a给定的顺序a[1],a[2],......,a[n]建立一棵二叉搜索树,然后对所有i(i > 1)输出值为a[i]节点的父节点的值 思路:想象有一个初始全为0的数组b,每输入一个a[i],就把b[a[i]]标记为其输入顺序i,即令b[a[i]] = i , 通过观察发现,从 位置a[i]开始,在数组b中向左找到一个位置l使得b[原创 2016-10-10 22:33:31 · 324 阅读 · 0 评论 -
codeforces round#353 trians and statistic dp+贪心+线段树
题目描述:有n个车站,第i(1 sum = Σp(i , j) (1 思路:在车站i处,可以用一张车票到达[i + 1 , a[i]]中的一站,那么,应选择m车站再买一张车票,其中m∈[i + 1 , a[i] ]且a[m]最大,为什么是这样呢?如图: 设m'是不同于m的一个车站,a[m'] 线段( i , a[m'] ]部分通过两种原创 2016-10-11 21:53:18 · 432 阅读 · 0 评论 -
codeforces Destroying Array 线段树维护区间
/* 题目描述:给出n个数的序列a[1] , a[2] , ... ,a[n] ,每次将其中的一个数破坏掉,每一次破坏掉以后问连续数 的最大值是多少 方法:利用线段树维护,线段树的每一个节点(l , r , x)包含4个信息:(l , r)中的总和,(l , r)中的最大值,(l , r)中最大前缀, (原创 2016-10-02 20:24:45 · 287 阅读 · 0 评论 -
hdu4819 Mosaic 二维线段树(树套树)
/* 题目描述:原问题中拆分出来这样的一个问题: 给定一个n*n的矩阵,查询某一块最大最小值,修改某一个位置的值,操作数共有约1e5次 思路:二维的线段树,写法是树套树,其中修改操作略微复杂,大致可以表述为先“沿x轴生长,每生长一点,就沿着y轴延展”。 */ #pragma warning(disable:4786) #pragma co原创 2016-12-11 22:10:44 · 455 阅读 · 0 评论 -
codeforces round 355 div2 D Vanya and Treasure Dp 二维线段树
#pragma warning(disable:4786) #pragma comment(linker, "/STACK:102400000,102400000") #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2016-12-16 22:54:45 · 280 阅读 · 0 评论 -
codeforces div2 round388 D Voting 线段树
/* 题目描述:有n条(1<=200,000)竞标信息,每一条有一个竞标人ai和竞标价格bi,一共有q(1<=200,000)个询问,每个 询问当中包含k个数,其中每一个数都代表一个竞标人的编号,意味着这个竞标人此轮不参与竞标。对于每个询问, 输出最终竞标成功的人的编号,并且输出他竞标成功时的价格(如果有多个价格可以成功竞标,那就用最便宜的那个)。原创 2017-01-19 12:50:56 · 252 阅读 · 0 评论