P5837 [USACO19DEC]Milk Pumping G】的更多相关文章

题意:有一\(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…
题目戳我 \(\text{Solution:}\) 这题不要把思想局限到线段树上--这题大意就是求路径经过的值中\(x\)的出现性问题. 最开始的想法是值域线段树--看了题解发现直接\(vector\)加二分即可\(O(n\log^2 n)\)解决. 思路: 用\(vector\)存下颜色\(i\)所出现的所有节点,对每一个\(vector\)排序后,考虑跳链的过程中二分第一个大于链头\(dfs\)序的点并判断它是不是在当前查询区间的范围内.最终复杂度是跳链的\(log\)和二分的\(\log.…
发现是一道比较裸的树上莫队,于是就开始刚,然后发现好像是最难的一道题--(本题解用于作者加深算法理解,也欢迎各位的阅读) 题意 给你一棵树,树有点权,询问一条路径上是否有点权为 \(c\) 的点. 题解 我们可以比较明显地发现询问是很像莫队的询问处理的,可以 \(O(1)\) 去扩展 \(l\) 和 \(r\) .但是这题是树,所以我们需要引入欧拉序的概念. 欧拉序其实很像 \(dfs\) 序,但是会在出栈的时候多记录一次,我们可以利用欧拉序来将树上的路径转化为莫队需要的区间问题. 我们可以先画…
为什么以它为例,因为这个最水,LCA唯一黄题. 首先做两道并查集的练习(估计已经忘光了).简单来说并查集就是认爸爸找爸爸的算法.先根据线索理认爸爸,然后查询阶段如果发现他们的爸爸相同,那就是联通一家的,不同就不是一家的. 两道简单例题 P1551 亲戚       P1536  村村通 以P1551 亲戚为例 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z…
今天第一次正式打个人定位赛,还是太菜,这题连枚举加最短路都没想到,显然菜是原罪. 题面: : 题解:其实方法很多,千万别浪到网络流用dinic求最大网络流求的最小费用,这题不一样.最大流/最小费用 不一定大于 流量/费用的最大值! 其实本题用邻接表存储,加上队列和结构体完全可以做本题,难度不高于bfs的裸题. 代码: #include <iostream> #include <algorithm> #include <cstdio> #include <cmath…
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--…
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…