【题解】P4886快递员】的更多相关文章

[题解]P4886 快递员 淀粉质好题!!!加深了我对点分治的理解.最近分治学了好多啊. 题目大意 给定你一颗有边权的树,再给你\(m\)和点对,请你在树上选出来一个点,使得所有点对到这个点的距离的最大值最小.请你输出最小的最长距离. 数据范围 对于\(100\%\)的数据,\(n,m\le10^5,w_i \le 10^3\) 思路 刚开始看到这个题目,以为题干在暗示我二分答案.于是设计一个这样的算法 先二分,得到一个\(log10^8=26\)的系数,得到一个答案\(k\)后,每次先枚举\(…
考虑在树上选个点rt作为根,并且快递中心就选这儿.计算出所有配送的代价(2*两段之和),设他们的最大值为Max.若此时存在下列情况时,可以判定Max已经为最优解. 1)存在代价为Max的配送(u,v)且uv分别属于rt的不同的两个"儿子的子树". 2)存在代价为Max的配送(u1,v1)(u2,v2)且u1u2分别属于rt的不同的两个"儿子的子树". 3)存在代价为Max的配送(u1,v1)(u2,v2)且v1v2分别属于rt的不同的两个"儿子的子树&qu…
题目大意:一个$n$个点的树,树上有$m$个点对$(a,b)$,找到一个点$x$,使得$max(dis(x,a_i)+dis(x,b_i))$最小 如果做过幻想乡的战略游戏这道题,应该这道题的思路一眼能看出来 首先如果从一个点向能使答案变小的子树上走,那么从子树上一定不会再回到这个点 所以考虑一个暴力,即每次计算所有子树的答案,然后向最优的方向走 这显然是正确的,但是不够优秀 我们再深入分析一下这道题,可以发现,当且仅当所有的距离等于最大值的点对都在它的一个子树内时才可能使得答案变优 很好理解,…
记得是9月月赛题,当时做的时候觉得跟ZJOI2015幻想乡战略游戏那道题很像???,就写了,然后就写挂了... 我们发现假设当前点为根,我们算出\(m\)次询问中最远的\(a\)对点,如果这\(a\)对点,全部都两个点在根的不同子树中.当前点就是最优的就是答案.当全部\(a\)对点都在一个子树中,我们把答案改为那个子树对应的儿子,答案会变优.当有几对点在一个子树,另外几对点在另外的子树中,当前答案还是最优的. 所以本题的一个想法就是,一个一个的改变根使答案变优. 但是上述想法要求我们每一次移动一…
这题因为一些小细节还是\(debug\)了很久...不过我第一次用脚本对拍,不亏. 先随便找一个点作为根,算出答案,即所有点对到这个点的距离和的最大值,并记录所有距离最大的点对.如果这个点在任意一个距离最大的点对之间的路径上,那么答案显然不能再优了,因为这个点对的答案是不能减小了的.如果有两个距离最大的点对不在根的同一子树中,答案也是显然不能再优了的,因为一个点对答案减小的同时,另一个会增大.只有当所有距离最大的点对在根的同一子树中,这时更优答案可能在这个子树里,向这个子树递归处理就行了.为什么…
解题过程 开场shl过B,C,然后lfw写J,J WA了以后shl写A,但是因为OJ上空间开小WA了,而不是MLE?,J加了特判过了.之后一直在检查A错哪了,直到qt发现问题改了空间,浪费许多时间,但是拿到A一血,shl和byf推出K,不会写组合数而抄了板子,  但是WA, shl想出E题拿到一血了,byf和 shl以为板子错了,让lfw重写K题 lfw重写K题的时候公式复制了之前的代码,又WA了,lfw看出I题,开始写,然后因为高精度加法时c[i]=a[i]+b[i]而不是c[i]+=a[i]…
有问题的话欢迎在评论区提出 题意: 题目链接 你是一个送快递的,现在给你一个环,环的边有权值,代表走这条边所花的时间,每个点代表一个地点,点有点权,代表这个点上有多少货物需要你送.初始时间\(t=0\),每到一个点,你就可以瞬间送完该点所有的货物,但每一个货物都会给你带来值为当前时间的罚款.现在你要送完所有货物,问最优情况下你的罚款最少是多少. 题解: 从样例可以看出,这题的核心就在于,快递员可以"反复横跳",比如可以先逆时针送完一个点的货物,再掉头沿顺时针方向送完所有其它点的货物(尽…
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我没看,看不懂. 基本思路:我不会. 参考代码:找Oyk老师和Czj老师去. B. The background of water problem 题目大意(大写加粗的水题):给定$N$个学生和他们$K$个科目的成绩$S_i$,再给出各科目$K_i$的权重顺序$Q_i$,求排名之后,拥有id为$X$的…
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> #include <time.h> #include <stdlib.h> #include <string> #include <bitset> #include <vector> #include <…
2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2561 Description 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条…