首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
EOJ - 3631 Delivery Service 2018.8华师大月赛(树链剖分+贪心)
】的更多相关文章
EOJ - 3631 Delivery Service 2018.8华师大月赛(树链剖分+贪心)
链接:https://acm.ecnu.edu.cn/contest/103/problem/D/ 题意:给你一棵无向边连接的树,边的权值可以任意互换.有m次运输,每次的花费是点u到v路径上边的权值和. 必须在全部运输开始前安排好边的权值,求m次运输总的最小花费. 分析:肯定是边被覆盖次数越多的边优先得到较小的权值.轻重链剖分之后,用线段树或树状数组维护每点的覆盖次数.最后对边和权值排序后贪心选取即可. #include<cstdio> #include<iostream> #in…
【UOJ#435】【集训队作业2018】Simple Tree 分块+树链剖分
题目大意: 有一棵有根树,根为 1 ,点有点权.现在有 m 次操作,操作有 3 种:1 x y w ,将 x 到 y 的路径上的点点权加上 w (其中 w=±1w=±1 ):2 x y ,询问在 x 到 y 的路径上有多少个点点权 >0 :3 x ,询问在 x 的子树里的点有多少个点点权 >0 . 数据范围:$n,m≤10^5$,点权的绝对值$≤10^9$. 这一题正常的做法并不是特别优秀,我们考虑一些分块做法 考虑求一个连续的区间内有多少个数$>0$,我们显然可以将原序列分成$\sqr…
BZOJ 3631: [JLOI2014]松鼠的新家( 树链剖分 )
裸树链剖分... ------------------------------------------------------------------- #include<bits/stdc++.h> using namespace std; const int maxn = 300009; struct edge { int to; edge* next; } E[maxn << 1], *pit = E, *head[maxn]; inline void add…
bzoj 3631 松鼠的新家 (树链剖分)
链接: https://www.lydsy.com/JudgeOnline/problem.php?id=3631 思路: 直接用树链剖分求每一次运动,因为这道题只需要区间增添,单点求值,没必要用线段树,直接数组标记下就好了 实现代码 #include<bits/stdc++.h> using namespace std; #define ll long long #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #de…
[集训队作业2018]蜀道难——TopTree+贪心+树链剖分+链分治+树形DP
题目链接: [集训队作业2018]蜀道难 题目大意:给出一棵$n$个节点的树,要求给每个点赋一个$1\sim n$之内的权值使所有点的权值是$1\sim n$的一个排列,定义一条边的权值为两端点权值差的绝对值,要求对于任意两点间的路径要么路径上所有点的点权单调,要么存在路径上的第三个点到这两个点的路径分别单调(即两点间路径先单调递增再单调递减或先单调递减再单调递增).求出整棵树最小边权和,并支持动态插入点之后完成上述问题. 前言: 这道题综合性比较强且代码量及细节非常多,是迄今为止我做过最神仙的…
Bzoj 3631: [JLOI2014]松鼠的新家(树链剖分+线段树)
3631: [JLOI2014]松鼠的新家 Time Limit: 10 Sec Memory Limit: 128 MB Description 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在"树"上.松鼠想邀请小熊维尼前来参观,并且还指定一份参观指南,他希望维尼能够按照他的指南顺序,先去a1,再去a2,--,最后到an,去参观新家. 可是这样会导致维尼重复走很多房间,懒惰…
UOJ#435. 【集训队作业2018】Simple Tree 树链剖分,分块
原文链接www.cnblogs.com/zhouzhendong/p/UOJ435.html 前言 分块题果然是我这种蒟蒻写不动的.由于种种原因,我写代码的时候打错了很多东西,最致命的是数组开小了.**windows不能检测数组越界,能眼查出来这运气是真的好. 题解 首先树链剖分,把问题转化为序列上的问题. 然后我们分块. 考虑如何维护每一块的答案. 初始时,我们预处理将每一块的相同值元素合并. 考虑修改操作: 如果是整块修改,那么临界指针位移即可. 否则就是零散修改,我们可以直接重构整个块.由…
ACM-ICPC 2018 焦作赛区网络预赛 E Jiu Yuan Wants to Eat (树链剖分+线段树)
题目链接:https://nanti.jisuanke.com/t/31714 题意:给你一棵树,初始全为0,有四种操作: 1.u-v乘x 2.u-v加x 3. u-v取反 4.询问u-v的和 思路: 除去第三个操作就是很简单的树链剖分+线段树多重标记下放,所以我们只要考虑怎么维护第三个操作就好了, 由题目给的取反可知:!x = (2^64-1) - x; 但是这样维护还是很麻烦,因为这道题是对2^64取模的,我们可以 尝试把这个式子转换成只有加法和乘法的,这样就可以将其和前面…
2018.11.09 codeforces487E. Tourists(tarjan+树链剖分)
传送门 先把边双连通分量用圆方树一样的方法缩点,然后把新建的树树剖维护. 注意对于边双连通分量需要维护动态最小值,可以用multisetmultisetmultiset. 代码: #include<bits/stdc++.h> #define lc (p<<1) #define rc (p<<1|1) #define mid (T[p].l+T[p].r>>1) using namespace std; inline int read(){ int ans=…
2018.10.30 NOIP训练 【模板】树链剖分(换根树剖)
传送门 纯粹是为了熟悉板子. 然后发现自己手生了足足写了差不多25min而且输出的时候因为没开long longWA了三次还不知所云 代码…