NOIP2015_提高组Day2_3_运输计划】的更多相关文章

这题思路很简单: 先对每个询问求距离,对距离由大到小排序, 二分最小距离,验证是否可行,验证时用差分处理: #include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #include<algorithm> #include<iomanip> #include<map> #include<set> #include<vec…
https://daniu.luogu.org/problem/show?pid=2680 使完成所有运输计划的时间最短,也就是使时间最长的运输计划耗时最短.最大值最小问题考虑用二分答案,每次check(mid)检查时间最长的运输计划耗时是否小于等于mid,二分出使得check(mid)==true的最小mid值. check函数怎么写是本题的难点.耗时小于mid的运输计划不会影响check的结果.耗时大于mid的运输计划肯定需要改造他们的共同边才有可能使它们耗时都小于mid,而有多条共同边的时…
树上差分加上二分答案 详细题解待填坑 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; ; ; ; ]; int lcav[MAXM],cf[MAXN],fw[MAXN],lent[MAXN]; int uline[MAXM],vline[MAXM],wline[MAXM]; ,u[MAXN*],v[MAXN*],w[MAXN*],first[MAXN*],nex…
题目链接 题解 题意 一棵树上有\(m\)条路径,可以将其中一条边的权值改为0,问最长的路径最短是多少 分析 最短的路径最长自然想到二分最长路径,设其为\(dis\) 关键在于如何check check的关键又是将哪条边改为0 贪心,如果所有超过\(dis\)的路径能在一条边上重合,则将那条边改为0,之后再判断改为0后是否最大的路径小于\(dis\):若无法将所有超过\(dis\)的边重合在一条边上,直接return false; 做法 算两个点之间的路径长用dfs + LCA来实现 判断路径之…
[题意]n个点的树,m条链,求将一条边的权值置为0使得最大链长最小. [算法]二分+树上差分 [题解] 最大值最小化问题,先考虑二分最大链长. 对所有链长>mid的链整体+1(树上差分). 然后扫一遍,对[在所有不满足链上]的边取最大值并check. 具体做法:对于二分的最大链长,将所有链长>mid的链取最大值(链的数量记为num),然后用树上差分整体+1. 树上差分:a+1,b+1,lca(a,b)-2.dfs的时候判断子节点的连边(若子节点权=num则连边参与比较),然后再把子节点权加进来…
http://172.20.6.3/Problem_Show.asp?id=1452很简单的二分,最开始以为是优先队列,想了想发现优先队列是有情况不能达到最优的,所以二分+贪心处理,在贪心check的时候想得有点复杂(或者说有漏洞),调了几次才过.写代码的时候果然不能硬莽,不思考乱莽只能随机30,70,90分,没法ac. 代码 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath…
题目:洛谷P1967.Vijos P1843.codevs3287. 题目大意:有n个城市m条道路,每条道路有一个限重,规定货车运货不能超过限重.有一些询问,问你两个城市之间一次最多能运多少重的货(可能无法到达). 解题思路:首先,要保证原来连通的点连通,限重要尽可能大,所以最大生成树.然后对每个询问找两个点的最近公共祖先,然后求出两点路径上最大限重的最小值即可. 用倍增求LCA,可以边算边求出最小值,不用用一些复杂的方法.代码中我用sml[x][i]表示x和它的第$2^i$个祖先之间的路径上最…
前言 使用算法:堆优化 \(prim\) , \(LCA\) . 题意 共有 \(n\) 个点,有 \(m\) 条边来连接这些点,每条边有权值.有 \(q\) 条类似于 \(u\) \(v\) 询问,求一条从 \(u\) 到 \(v\) 的路径使得路径上的最小权值最大,求这个最大值.若不存在从 \(u\) 到 \(v\) 的路径,则输出 \(-1\) . 思路 先求该图的最大生成树,因为需要使得该路径上的最小值最大,而这条路径就是最小生成树的中两点的简单路径(最大生成树尽量取最大的边). 故而,…
[数据结构]运输计划 NOIP2015提高组D2T3 >>>>题目 [题目描述] 公元 2044 年,人类进入了宇宙纪元.L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球.小 P 掌管一家物流公司, 该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从 ui 号星球沿最快的宇航路径飞行到 vi 号星球去.显然,飞船驶过一条航道是需要时间的,对于航道 j,任意飞船驶过它所花费的时间为 tj,并且任意两艘飞…
2109. [NOIP 2015] 运输计划 ★★★☆   输入文件:transport.in   输出文件:transport.out   简单对比时间限制:3 s   内存限制:256 MB [题目描述] 公元 2044 年,人类进入了宇宙纪元. L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球. 小 P 掌管一家物流公司,该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从 ui 号星球沿最快的宇航路径飞行到 …