[NOIP2018]赛道修建】的更多相关文章

Luogu5021 [NOIP2018]赛道修建 一棵大小为 \(n\) 的树,边带权.选 \(m\) 条链使得长度和最小的链最大. \(m<n\leq5\times10^4\) 贪心,二分答案 最小最大?二分 先看部分分 菊花图 二分答案,顺序贪心匹配. 二叉树 每个节点两种情况,选一个儿子往上算贡献,两个儿子合成一条链. 于是可以将两种做法结合 对于每个节点,往上算贡献.贪心匹配两个儿子 至于实现,可以考虑 \(multiset\) ,也可以排序+二分 时间复杂度 \(O(n\log^2n)…
[LG5021][NOIP2018]赛道修建 题面 洛谷 题解 NOIP之前做过增强版还没做出来\(QAQ\) 一看到题目中的最大值最小,就很容易想到二分答案 重点是考虑如何\(check\) 设\(dp[x]\)表示在\(x\)的子树中未被选过的权值最大的路径权值为多少 对于其子节点\(v\),它满足\(f[v] + cost[u][v] >= mid\)就可以选择 否则再选一条路径和它拼在一起即可 这个过程开个\(multiset\)可以较简单地做 复杂度\(O(nlog_n^2)\)(常数…
\(\mathcal {NOIP2018}\) 赛道修建 - 竞赛题解 额--考试的时候大概猜到正解,但是时间不够了,不敢写,就写了骗分QwQ 现在把坑填好了~ 题目 (Copy from 洛谷) 题目描述 C 城将要举办一系列的赛车比赛.在比赛前,需要在城内修建 \(m\) 条赛道. C 城一共有 \(n\) 个路口,这些路口编号为 \(1,2,...,n\),有 \(n-1\) 条适合于修建赛道的双向通行的道路,每条道路连接着两个路口.其中,第 \(i\) 条道路连接的两个路口编号为 \(a…
考场上打了一个 \(vector\) 解法,因为我当时不会 \(multiset\) 好吧,我来讲一讲今年的 \(tgD1T3\) 首先,这题 \(55\) 分是不难想的 1. \(b_i=a_i+1\) 的情况(一条链) 解法:把所有边权记录下来,这种情况等价于将序列分割成 \(m\) 段,使 \(m\) 段区间和的最小值最大 那么二分 \(m\) 段区间和的最小值,然后 \(O(n)\) 贪心扫一遍,时间复杂度 \(O(nlogn)\) namespace subtask1{ int a[m…
最小值最大,二分长度 然后判断赛道大于等于这个长度最多可以有多少条 可以贪心,对于一个点和它的一些儿子,儿子与儿子之间尽量多配(排序后一大一小),剩下的选个最长的留给自己的父亲就好了 具体实现可以用一个set(自测会被卡常,但是少爷机似乎很快) #include<bits/stdc++.h> #define ui unsigned int #define ll long long #define db double #define ld long double #define ull unsi…
嘟嘟嘟 因为一些知道的人所知道的,不知道的人所不知道的原因,我来改写今年的NOIP了. 现在看这题,心中满是疑问:我当时是多么的zz,这种水题为啥没做出来-- 不管了,说正事. 先考虑部分分. 1.\(n \leqslant 15\) 不会. 2.\(m = 1\) 带权树的直径啊.树形dp一下维护最长链次长链即可. 3.菊花图. 最长的一组路径显然可能是由一条边或是任意两条边组成. 当\(m <= \frac{n - 1}{2}\)的时候,贪心把前\(2m\)大的边最大的匹配最小的即可. 否则…
首先二分一下答案,就变成了找长度>=m的 不相交的路径的个数 考虑到在一个子树中,只有一个点能出这个子树去和别的点搞 所以我这个子树里尽量自我满足是不会有坏处的 而且要在自我满足数最大的条件下,剩下一个尽量大的去把他搞出去 具体来说,我们设f[x]是x的子树中的满足条件的最大路径数,g[x]是在f[x]最大的情况下能剩下来的x的子树中到x的最大的路径长度 我们假设y们是x的孩子们,那我们拿着g[y]+edge[x][y],又可以拼出好多路径 首先如果他已经>=m了,那就直接f[x]++ 然后我…
题目戳我 \(\text{Solution:}\) 根据题目信息简化题意,是让你在树上找出\(m\)条路径使得路径长度最小值最大. 看到题第一感先二分一个答案,问题转化为如何选择一些路径使得它们最小值都大于当前二分的答案. 观察一个节点的子树,必然会带着若干链.它们有些合法,有些需要拼凑成一条合法路径. 于是,我们令\(val[x]\)表示这条路径以\(x\)结尾的长度.将\(x\)所连接的所有路径提取出来. 贪心地,我们显然要使得\(x\)所连的这一条路径最大.所以在给其他路径拼凑的时候要用尽…
[NOIp2018提高组]赛道修建 题目大意: 给你一棵\(n(n\le5\times10^4)\)个结点的树,从中找出\(m\)个没有公共边的路径,使得第\(m\)长的路径最长.问第\(m\)长的路径最长可以是多少. 思路: 二分答案+树形DP.\(f[x]\)表示以\(x\)为根的子树中最多能找出几个长度\(\ge k\)的路径.\(g[x]\)表示去掉已经满足的路径,从\(x\)子树内往上连的最长的路径有多长. 转移时将所有子结点的贡献\(g[y]+w\)排序.若贡献已经\(\ge k\)…
题目描述 C 城将要举办一系列的赛车比赛.在比赛前,需要在城内修建 mm 条赛道. C 城一共有 nn 个路口,这些路口编号为 1,2,…,n1,2,…,n,有 n-1n−1 条适合于修建赛道的双向通行的道路,每条道路连接着两个路口.其中,第 ii 条道路连接的两个路口编号为 a_iai​ 和 b_ibi​,该道路的长度为 l_ili​.借助这 n-1n−1 条道路,从任何一个路口出发都能到达其他所有的路口. 一条赛道是一组互不相同的道路 e_1,e_2,…,e_ke1​,e2​,…,ek​,满…