上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: 权值线段树求逆序对,题目依次把首数字移向尾部问最小逆序对。移动的时候查询更新一下就好。 #include <bits/stdc++.h> #define Lson l,mid,rt<<1 #define Rson mid+1,r,rt<<1|1 using namespace std; const 阅读全文
posted @ 2018-08-30 10:02 LMissher 阅读(130) 评论(0) 推荐(0)
摘要: 给一幅图,求乘积最短的路径。 把乘积取对数就能变成普通的最短路。 #include <bits/stdc++.h> using namespace std; const int M = 1e6+7; const double inf = 2147483647; const int mod = 998 阅读全文
posted @ 2018-08-29 15:38 LMissher 阅读(202) 评论(0) 推荐(0)
摘要: 题意给一个图,问从1节点出发到所有i节点的最短路有多少条,边权都为1。 维护一个ans,如果dis[v]>dis[u]+1,那么ans[v]=ans[u]并更新距离。如果dis[v]==dis[u]+1,那么ans[v]+=ans[u]。 #include <bits/stdc++.h> #defi 阅读全文
posted @ 2018-08-29 15:37 LMissher 阅读(212) 评论(0) 推荐(0)
摘要: 给一颗树,给q次询问,每次询问给一条路径x到y并且给这条路染色v。 问最后每个点分别被哪种颜色染色的最多。 首先考虑在直线上的这种问题,我们可以把每次染色的区间左端点和右端点记录下来。然后建一颗颜色的权值线段树。 每次到左端点的时候把权值线段树的颜色++,到右端点+1的时候把颜色--。类似差分。然后 阅读全文
posted @ 2018-08-29 14:34 LMissher 阅读(126) 评论(0) 推荐(0)
摘要: 有n个节点的树,有q次操作,每次操作选择一条路径问从起点出发到终点可以在任意点花vi买入一个商品并在之后任意一点以vj卖掉。 问最大收益是多少,并在每次操作后将那条路径所有点权加上v。 树链剖分将问题变为直线上的问题后,考虑用线段树维护一个最大值与最小值,以及从直线左到右的最大收益以及直线右到左的最 阅读全文
posted @ 2018-08-29 14:33 LMissher 阅读(161) 评论(0) 推荐(0)
摘要: 题意是有n个没有安装的软件包形成一个树形结构,安装一个软件包必须把它的所有祖先一起安装,卸载一个软件包必须把它的所有子孙一起卸载。 q次操作,每次可能安装一个节点也可能卸载一个节点,问每次操作会改变多少个节点的状态。 安装是对链操作,卸载是对子树操作。线段树维护区间内的安装数量与未安装数量,更新的时 阅读全文
posted @ 2018-08-29 14:32 LMissher 阅读(288) 评论(0) 推荐(0)
摘要: 记录一波Hadoop的各种操作,其实感觉就和Linux的命令一样。 "/"为Hadoop的根目录。 Hadoop fs -ls -R / ls:列出文件夹下的文件。-R:递归查找并列出。 Hadoop fs -mkdir -p /*** mkdir:创建文件夹。-p:创建多级文件夹。 Hadoop 阅读全文
posted @ 2018-08-29 09:52 LMissher 阅读(204) 评论(0) 推荐(0)
摘要: 题意给你q次询问,给一条链问从给定起点到给定终点的最长连续严格递增子序列。 因为给定起点与终点所以路径可能与dfs序的树节点展开顺序相反。所以问题变成了给n个数询问一个区间的最长LCIS。 但因为方向可正可负,所以我们除了维护区间的最长递增以外还要维护最长递减。线段树的部分就做完了。 树链剖分的时候 阅读全文
posted @ 2018-08-28 23:21 LMissher 阅读(211) 评论(0) 推荐(0)
摘要: 给n个数,有两个操作,第一个操作单点更新,第二个操作询问区间的最长严格连续递增子序列 因为是连续,所以线段树区间合并的时候答案只可能是两个子区间的答案或者合并后的中间拼接的最大值。 维护五个量,lnum区间左端点的值,rnum区间右端点的值,llen区间从左端点起的最长LCIS,rlen区间从右端点 阅读全文
posted @ 2018-08-28 11:27 LMissher 阅读(132) 评论(0) 推荐(0)
摘要: 给一棵边权树,再给三个操作。第一个把一条边权改为v,第二个将一条链的值取反,第三个求一条链的最大值。 考虑用线段树维护连续区间的最大最小值。区间取反打lazy标记,如果lazy是奇数就取反再把最大最小值交换下放,否则不管,单点更新和区间查询很简单。 最后用树剖更新区间。把边权映射到点权即可。 #in 阅读全文
posted @ 2018-08-27 21:58 LMissher 阅读(148) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页