P5838 [USACO19DEC]Milk Visits G】的更多相关文章

发现是一道比较裸的树上莫队,于是就开始刚,然后发现好像是最难的一道题--(本题解用于作者加深算法理解,也欢迎各位的阅读) 题意 给你一棵树,树有点权,询问一条路径上是否有点权为 \(c\) 的点. 题解 我们可以比较明显地发现询问是很像莫队的询问处理的,可以 \(O(1)\) 去扩展 \(l\) 和 \(r\) .但是这题是树,所以我们需要引入欧拉序的概念. 欧拉序其实很像 \(dfs\) 序,但是会在出栈的时候多记录一次,我们可以利用欧拉序来将树上的路径转化为莫队需要的区间问题. 我们可以先画…
题目戳我 \(\text{Solution:}\) 这题不要把思想局限到线段树上--这题大意就是求路径经过的值中\(x\)的出现性问题. 最开始的想法是值域线段树--看了题解发现直接\(vector\)加二分即可\(O(n\log^2 n)\)解决. 思路: 用\(vector\)存下颜色\(i\)所出现的所有节点,对每一个\(vector\)排序后,考虑跳链的过程中二分第一个大于链头\(dfs\)序的点并判断它是不是在当前查询区间的范围内.最终复杂度是跳链的\(log\)和二分的\(\log.…
为什么以它为例,因为这个最水,LCA唯一黄题. 首先做两道并查集的练习(估计已经忘光了).简单来说并查集就是认爸爸找爸爸的算法.先根据线索理认爸爸,然后查询阶段如果发现他们的爸爸相同,那就是联通一家的,不同就不是一家的. 两道简单例题 P1551 亲戚       P1536  村村通 以P1551 亲戚为例 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z…
题意:有一\(n\)个点,\(m\)条边的双向图,每条边都有花费和流量,求从\(1\)~\(n\)的路径中,求\(max\frac{min(f)}{\sum c}\). 题解:对于c,一定是单源最短路,我们可以用dijkstra,但是这个最小流量不是很好搞,但是题目所给的数据范围较小,所以我们可以直接枚举最小流量,然后每次初始化数组跑dijkstra,去找大于当前最小流量的边,如果\(1\)~\(n\)有路径能走,我们每次维护答案的最小值. 代码: struct misaka{ int out;…
题目描述 Farmer John 最近为了扩张他的牛奶产业帝国而收购了一个新的农场.这一新的农场通过一个管道网络与附近的小镇相连,FJ 想要找出其中最合适的一组管道,将其购买并用来将牛奶从农场输送到小镇. 这个管道网络可以用 $N$ 个接合点(管道的端点)来描述,将其编号为 $1-N$.接合点 $1$ 表示 FJ 的农场,接合点 $N$ 表示小镇.有 $M$ 条双向的管道,每条连接了两个接合点.使用第 $i$ 条管道需要 FJ 花费 $c_i$​ 美元购入,可以支持每秒 $f_i$​ 升牛奶的流…
Milk Pumping G&Milk Routing S 双倍经验时间 洛谷P5837 [USACO19DEC]Milk Pumping G 洛谷P3063 [USACO12DEC]Milk Routing S 题目模型 给定\(N\)个点和\(M\)条边,对于每条边,给定连接的两个端点以及这条边的花费和"流量" 设这条路径上所有边的花费总和为\(L\) 设这条路径上所有边中"流量"值最小的为\(C\) 要求找出一条\(1\)到\(N\)的路径满足:\(L…
这题其实想法挺简单的,因为他只需要简单的把每个点的花费和流量用dp记下来就好了 1.怎么记: 首先考虑dp的状态.由于所在的点和流量都要记,所以dp开二维,一维记所在的点,另一维记去哪 //dp[i][j] ==> i 是现在所在的点,j是流量 2.从哪开始 看题 3.转移方法 //dp[要去的点][现在的流量和要去的流量的最小值] = dp[现在的点][现在的流量]+去的花费 4.输出 在终点,对于每个能到达的流量,最大值就是花费/流量 dijkstra代码: #include <iostr…
2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fallen Lord(sort(a+1,a+1+n,greater<int>()); 真好用) P4161 [SCOI2009]游戏 P1707 刷题比赛 2021-10-12 CF1573A Countdown P2717 寒假作业 P7868 [COCI2015-2016#2] VUDU P1660…
Bronze A Cow Gymnastics 题目:https://www.luogu.com.cn/problem/P5831 题解:用数组存一下出现位置,O(n^2)枚举一下就好. 代码: #include<bits/stdc++.h> using namespace std; #define re register int #define F(x,y,z) for(re x=y;x<=z;x++) #define FOR(x,y,z) for(re x=y;x>=z;x--…
Forewords 今年 USACO 的比赛变化挺大的,有部分分了,而且不再是固定十个点了(部分分只说这几个点满足这几个性质,以为十个点的我还高兴了一会,一提交,...),除此之外居然赛后还排名了.这场打得意外的顺手,但是还是有点小遗憾吧.样例强度还是有点不够高的,但 IOI 赛制嘛,也不能说啥. T1 Milk Pumping 上来看错题,打了个最小生成树,结果别人只要一条路径给弄出个树来妥妥的超过最优解爆零.仔细看题了以后发现还行,就是个有限制的最短路,每个限制枚举一遍很暴力但是数据不是很大…