![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
yp_2013
这个作者很懒,什么都没留下…
展开
-
续hdu 5592 ZYB's Premutation
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5592 还是之前的那道题,我再来一发线段树的写法!!!!很板子的写法,k号点表示的区间是left到right!! 每次都是搜寻那个前缀和,如果要是在左边区间则去左边找,否则去右边区间找剩余的和!!!! 还有就是注意写线段树一定要return ; !!!!!#include<bits/stdc+原创 2016-01-18 23:05:28 · 381 阅读 · 2 评论 -
又一线段树,算上findpos
http://blog.csdn.net/shiqi_614/article/details/9938973原创 2016-08-02 10:48:02 · 332 阅读 · 0 评论 -
?????
http://blog.csdn.net/u011433745/article/details/38779143原创 2016-08-02 00:36:47 · 217 阅读 · 0 评论 -
hdu 4122 单调队列或线段树
/** hdu 4122 单调队列 题目大意:给定n个时刻,在每一个时刻都要生产ai个月饼。给出m个可以生产的时刻,每个时刻单个生产费用为bi,单个月饼可储存T时间,单位时间费用为S 问如何安排生产花费最少 解题思路:用单调队列维护一个点之前所有点的最小花费(为生产费+储存费) 特别注意:n个时刻可能有重复的 */ #include <string.h> #include <alg原创 2016-06-10 16:43:32 · 316 阅读 · 0 评论 -
qinghua大乱斗C
题意: 维护一个数列,支持两种操作 1.给一个区间所有数加v 2.询问一个区间内所有余弦的和维护一个余弦和,一个正弦和即可,cosv sinv提出,然后打标记即可~#include<set> #include<ctime> #include<cmath> #include<cstdio> #include<vector> #include<cstdlib> #include<cstring>原创 2016-05-25 11:01:49 · 307 阅读 · 0 评论 -
hdu 5692 Snacks
线段树区间修改和取最值,首先根据dfs序,确立每个点应该对应的区间。#include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:1024000000,1024000000") #define ll long long #define pl c<<1 #define pr (c<<1)|1 #define原创 2016-05-24 20:49:01 · 597 阅读 · 0 评论 -
hdu 5306 Gorgeous Sequence
http://www.shuizilong.com/house/archives/hdu-5306-gorgeous-sequence/这道题目岛神解释的非常到位,我再加上一点自己的感受吧,毕竟这道题目看了这么长的时间~ 因为我们知道每个区间对应有多少个节点,那么每次更新操作的时候,我们只需要将sum加上节点数乘这个新值就ok了,但是我们不知道有多少个节点的值要比这个更新的值小,也就是应该抛掉这些原创 2016-03-24 11:04:31 · 1293 阅读 · 0 评论 -
BestCoder Round #74 (div.2)
未完待续~~ 直接对新的点建图,然后flyod,最后算答案的是后6*6,枚举转折点更新答案即可!#include<bits/stdc++.h> using namespace std; #define ll long long const int maxn=1e5+10; int a[10],dis[10][10],n,m; const ll mod=1e9+7; int main(){原创 2016-03-08 21:06:15 · 327 阅读 · 0 评论 -
POJ 2763 Housewife Wind
题意: 知道了一颗有 n 个节点的树和树上每条边的权值,对应两种操作: 【LCA_RMQ+树状数组】 0 x 输出 当前节点到 x节点的最短距离,并移动到 x 节点位置 1 x val 把第 x 条边的权值改为 val 分析: 树上两个节点a,b的距离可以转化为 dis[a] + dis[b] - 2*dis[lca(a,b)] 其中 d原创 2016-02-23 11:09:59 · 276 阅读 · 0 评论 -
hdu 5289 Assignment
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5289题意:找出一段区间里面最大值减去最小值小于k的区间个数由于昨天做了那道线段树区间最值的题目,因此想起了这道多校第一场的第二题,用了双指针加线段树,秒A! 注意用线段树判断的时候别越界了!#include<bits/stdc++.h> using namespace std; #define ll原创 2016-02-12 09:48:03 · 259 阅读 · 0 评论 -
2015湘潭邀请赛 Segment Tree
传送门: http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1238题意: 题意:给出一个数组,分别有4种操作1 l r c:l~r区间的值加c 2 l r c:l~r区间内所有比c大的值变为c 3 l r c:l~r区间内所有比c小的值变为c 4 l r:查询区间内最小与最大的数字直接线段树维护一下区间最大最小值就o原创 2016-02-15 16:42:01 · 297 阅读 · 0 评论 -
hdu 5296 Annoying problem
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5296题目大意:给出一棵树,每个边都有一个权值,现在有一个空的集合,两种操作,1 x吧x节点放到集合中(如果还没放入),2 x把x节点从集合中拿出来(已放入)。现在要求将集合中的点之间的边权之和dfn[u] - dfn[ lca(x,u) ] - dfn[ lca(y,u) ] + dfn[ lca(x原创 2016-02-12 16:52:27 · 479 阅读 · 0 评论 -
Codeforces 622 C. Not Equal on a Segment
传送门: http://codeforces.com/problemset/problem/622/C题意:输出给定区间不等于e的位置 比赛的时候用愚蠢的方法一直wrong,然后听到q神说用双指针方法,记录每个位置右边最靠左的不等位置就ok了,第二天写了一发果然过了!#include<bits/stdc++.h> using namespace std; const int maxn=1e6+1原创 2016-02-11 10:42:26 · 792 阅读 · 0 评论 -
Codeforces 618 E . Robot Arm
传送门: http://codeforces.com/problemset/problem/618/E题意: n条线段初始都位于x轴,长度都相等,现在有2种操作,第一种是把某个线段拉长,第二种是把某个线段及其以后的线段全部相对于上一条线段旋转一定的角度,问每次操作执行后,最后一个点的坐标!#include<bits/stdc++.h> using namespace std; #define p原创 2016-02-10 12:06:08 · 807 阅读 · 0 评论 -
Codeforces 620 E. New Year Tree
传送门: http://codeforces.com/problemset/problem/620/E 题意: 一个树,给两种操作,第一种是将一个节点下的所有子树染成一种颜色,第二个操作 是输出一个节点下的子树一共有多少种颜色,多次查询。原创 2016-01-23 16:42:23 · 639 阅读 · 0 评论 -
hdu5861 维护最大最小值线段树
题意:有n 个村庄在一条公路上,每两个村庄之间的路有使用和不使用两种状态,使用时,每天需耗费wi 元,每段路初始时都是不使用的,在m 天中,我们总共可以打开一次、关闭一次,从第一天到第m 天,每一天给出ai、bi,表示ai 到bi 之间的路必须是通的,问每一天n-1段路的总耗费最小为多少。思路: 每段路只能打开一次,关闭一次,我们可以求出第i 段路最早什么时候使用t1,最晚什么时候使用t2,那么我原创 2016-08-18 22:52:23 · 637 阅读 · 0 评论