BZOJ 3159: 决战 解题报告】的更多相关文章

BZOJ 3159: 决战 1 sec 512MB 题意: 给你一颗\(n\)个点,初始点权为\(0\)的有跟树,要求支持 Increase x y w 将路径\(x\)到\(y\)所有点点权加上\(w\) Sum x y 询问路径\(x\)到\(y\)的点权和 Major x y 询问从路径\(x\)到\(y\)最大点权 Minor x y 询问最小点权 Invert x y 将路径上的点权翻转 有个性质,修改操作一定满足\(x\)为\(y\)祖先或者\(y\)为\(x\)祖先(实际没什么用处…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3159 题意:给出一棵树,(1)路径加一个值:(2)路径上的节点的值反转(只是值反转,不是节点反转):(3)询问路径最大值最小值和. 思路:两棵树,一个维护拓扑关系,一个维护权值. const int N=111111; void upMin(i64 &x,i64 y) {if(x>y) x=y;} void upMax(i64 &x,i64 y) {if(x<y) x=…
原题地址:http://poj.org/problem?id=3159 题意大概是班长发糖果,班里面有不良风气,A希望B的糖果不比自己多C个.班长要满足小朋友的需求,而且要让自己的糖果比snoopy的尽量多. 比如现在ABCD四个小朋友,B的糖果不能超过A的5个,如果A的史努比,D是班长,那么班长最多比史努比多7个糖果,而不是5+4+1=9个. 因为如果是9个,就不满足D-A<=(D-C)+(C-A)<=7的条件. 不懂的可以翻一下算法导论,上面有差分约束的定义和证明,总之这是一个求最短路的问…
2959: 长跑 Description 某校开展了同学们喜闻乐见的阳光长跑活动.为了能"为祖国健康工作五十年",同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑运动.一时间操场上熙熙攘攘,摩肩接踵,盛况空前. 为了让同学们更好地监督自己,学校推行了刷卡机制. 学校中有n个地点,用1到n的整数表示,每个地点设有若干个刷卡机. 有以下三类事件: 1.修建了一条连接A地点和B地点的跑道. 2.A点的刷卡机台数变为了B. 3.进行了一次长跑.问一个同学从A出发,最后到达B最…
BZOJ 4238 电压 考虑一条边成为答案以后,删去Ta后剩下的图是一个或很多个二分图,即没有奇环 则一条边可以成为答案,当且仅当自己在所有奇环的交上且不在偶环上. 考虑建出dfs树,那么返祖边一定在环上. 把边下放到点上,考虑处理出返祖边覆盖的两个端点直接的路径,这些点都在这个环上,按照这个环的奇偶打一个差分上去即可. 但是这样只考虑了只有一个返祖边在环上的情况,返祖边在两个环以上的环我们没有处理 考虑分类讨论 若两个有交返祖边奇偶不同,少处理的一个环是奇环,无论是大奇环还是小奇环都没有影响…
BZOJ 3328: PYXFIB 题意 给定\(n,p,k(1\le n\le 10^{18},1\le k\le 20000,1\le p\le 10^9,p \ is \ prime,k|(p-1))\),求 \[ \sum_{i=0}^{\lfloor\frac{n}{k}\rfloor}\binom{n}{ik}F_{ik} \] 其中\(F_{i}\)代表斐波那契数列的第\(i\)项. 首先分析一波题目条件,有个很奇怪的条件\(k|\varphi(p)\) 如果对NTT或者单位根有所…
这个题好像很有趣的样子. 题目分析: 房间都是 $1\times k$ 的,也就是一条一条的.这个好像比较显然的样子. 一个房间如果要覆盖某个格子$u$,那么这个房间的面积至少为 $dis(u, Boundry)$,即其到边界的距离,这个好像也比较显然的样子. 于是答案至少是 $max\{dis(u, Boundry)\}$,然后可以通过构造来取到最小值,即答案就是$max\{dis(u, Boundry)\}$. 算法流程: 特判:如果输入的是一个边长为一个奇数的正方形,且 $(x,y)$ 恰…
这个题感觉很神呀.将 FFT 和 Manacher 有机结合在了一起. 首先我们不管那个 “不能连续” 的条件,那么我们就可以求出有多少对字母关于某一条直线对称,然后记 $T_i$ 为关于直线 $i$ 对称的字母对的数量,那么答案(暂记为 $Ans$)就会是: $$Ans = \sum 2^{T_i}-1$$ 在不管那个 “不能连续” 的条件的时候,这个应该是显然的. 怎么算的话,我们弄两次.分别把 $a$ 和 $b$ 当做 $1$,另一个当做 $0$,然后就可以得到一个多项式,将这个多项式平方…
这个题感觉很厉害的样子.. 首先我们注意到一点:每次加的 $d$ 都是非负的. 那么就说明一个数只可能从负数变成非负数并且只会变一次. 所以我们就可以暴力地去改变一个数的正负情况. 然后我们就可以用树链剖分,维护一下区间的最大负数和负数的个数就可以了. 时间复杂度 $O(n\log^2 n)$,空间复杂度 $O(n)$. #include <cstdio> typedef long long LL; #define N 262144 + 5 #define INF 12345678909876…
首先,我们可以先考虑一个暴力一点的算法: 对于任意两个分子,如果它们能以至少一种进行匹配,那么我们就在这两个分子之间连一条边. 然后如果我们能找到一个环,就说明是 unbounded,否则就是 bounded. 复杂度是 $O(n^2)$ 的,然而 $n \le 40000$ ,显然是不行的. 考虑优化.我们注意到本质不同的边有 $26$ 种,那么我们应该能省去很多不必要的边. 令 $inv(x)$ 为与类型为 $x$ 的离子匹配的离子,如 $inv(A+)=A-$. 对于在同一个分子上的两个离…