\(\mathcal {NOIP2018}\) 赛道修建 - 竞赛题解 额--考试的时候大概猜到正解,但是时间不够了,不敢写,就写了骗分QwQ 现在把坑填好了~ 题目 (Copy from 洛谷) 题目描述 C 城将要举办一系列的赛车比赛.在比赛前,需要在城内修建 \(m\) 条赛道. C 城一共有 \(n\) 个路口,这些路口编号为 \(1,2,...,n\),有 \(n-1\) 条适合于修建赛道的双向通行的道路,每条道路连接着两个路口.其中,第 \(i\) 条道路连接的两个路口编号为 \(a…
[LG5021][NOIP2018]赛道修建 题面 洛谷 题解 NOIP之前做过增强版还没做出来\(QAQ\) 一看到题目中的最大值最小,就很容易想到二分答案 重点是考虑如何\(check\) 设\(dp[x]\)表示在\(x\)的子树中未被选过的权值最大的路径权值为多少 对于其子节点\(v\),它满足\(f[v] + cost[u][v] >= mid\)就可以选择 否则再选一条路径和它拼在一起即可 这个过程开个\(multiset\)可以较简单地做 复杂度\(O(nlog_n^2)\)(常数…
Luogu5021 [NOIP2018]赛道修建 一棵大小为 \(n\) 的树,边带权.选 \(m\) 条链使得长度和最小的链最大. \(m<n\leq5\times10^4\) 贪心,二分答案 最小最大?二分 先看部分分 菊花图 二分答案,顺序贪心匹配. 二叉树 每个节点两种情况,选一个儿子往上算贡献,两个儿子合成一条链. 于是可以将两种做法结合 对于每个节点,往上算贡献.贪心匹配两个儿子 至于实现,可以考虑 \(multiset\) ,也可以排序+二分 时间复杂度 \(O(n\log^2n)…
话说好久没更博了. 最近学了好多知识懒的加进来了. 有幸认识一位大佬. 让我有了继续更博的兴趣. 但这是一个旧的题解. 我在某谷上早就发过的. 拿过来直接用就当回归了吧. 其实这道题有一个特别关键的思路. 拿着你要确定的魔板中列去枚举要匹配的魔板的每一列. 因为列是可以交换的. 而且还有最关键的一个点. 如果你确定了其中有一列对应了,那么你的魔板其实就已经固定了.行就不能变换了. 上边这个关键点的确不好想,但是想通了这个题也就好解决了. 然后就可以用map进行对应开始查询. 如果手里的魔板的数和…
prime 洛谷p1835 题目描述 给定区间[L, R](L <= R <= 2147483647, R-L <= 1000000),请计算区间中 素数的个数. 输入输出 输入 两个数 L 和 R. 输出 一行,区间中素数的个数. 样例 样例输入 2 11 样例输出 5 说明 时空限制 时间限制 1s/testcase 空间限制 32MB 思路 R-L<=1000000 L <= R <= 2147483647 时间上用质数筛能过 求出2~45000的所有质数(sqr…
题目戳我 \(\text{Solution:}\) 根据题目信息简化题意,是让你在树上找出\(m\)条路径使得路径长度最小值最大. 看到题第一感先二分一个答案,问题转化为如何选择一些路径使得它们最小值都大于当前二分的答案. 观察一个节点的子树,必然会带着若干链.它们有些合法,有些需要拼凑成一条合法路径. 于是,我们令\(val[x]\)表示这条路径以\(x\)结尾的长度.将\(x\)所连接的所有路径提取出来. 贪心地,我们显然要使得\(x\)所连的这一条路径最大.所以在给其他路径拼凑的时候要用尽…
考场上打了一个 \(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\)大的边最大的匹配最小的即可. 否则…
https://www.luogu.org/problem/show?pid=1265 题目描述 某国有n个城市,它们互相之间没有公路相通,因此交通十分不便.为解决这一“行路难”的问题,政府决定修建公路.修建公路的任务由各城市共同完成. 修建工程分若干轮完成.在每一轮中,每个城市选择一个与它最近的城市,申请修建通往该城市的公路.政府负责审批这些申请以决定是否同意修建. 政府审批的规则如下: (1)如果两个或以上城市申请修建同一条公路,则让它们共同修建: (2)如果三个或以上的城市申请修建的公路成…