Milk Pumping
今天第一次正式打个人定位赛,还是太菜,这题连枚举加最短路都没想到,显然菜是原罪。
题面:
:
题解:其实方法很多,千万别浪到网络流用dinic求最大网络流求的最小费用,这题不一样。最大流/最小费用 不一定大于 流量/费用的最大值!
其实本题用邻接表存储,加上队列和结构体完全可以做本题,难度不高于bfs的裸题。
代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <string.h>
#include <cstring>
#include <map>
#include <queue>
#include <vector>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
struct node {
int price;
int flow;
double rate;
node() {}
node(int cc, int ff) { price = cc; flow = ff; }
}p[];
struct gd {
int e;//终点
int price;
int flow;
gd() {}
gd(int ee, int pp, int ff) { e = ee; price = pp; flow = ff; }
};
vector<gd>Map[];
int main(void)
{
int n, m;
cin >> n >> m;
for (int i = ; i <= m; i++)
{
int a, b, c, d;
cin >> a >> b >> c >> d;
Map[a].push_back(gd(b, c, d));
Map[b].push_back(gd(a, c, d));
}
p[].price = ; p[].flow = inf; p[].rate = ;
for (int i = ; i <= n; i++)
{
p[i].price = inf;
p[i].flow = ;
p[i].rate = ;
}
queue<int>q;
q.push();
int df, dc;
double dr;
while (!q.empty())
{
int now = q.front();
q.pop();
for (int i = ; i < Map[now].size(); i++)
{
df = min(Map[now][i].flow, p[now].flow);//此时的管道流量=min(新管道流量,当前点位的流量最小值)
dc = p[now].price + Map[now][i].price;//新价格=当前点位不安放这根管道的总价+这根管道的价格
dr = 1.0 * df / dc;
if (dr > p[Map[now][i].e].rate)//如果通过这根管道到达下一个点位,能比之前已经存储的下一个点位的最高占比更加高的话,选取这根管道,并且更新数据
{
p[Map[now][i].e].flow = df;
p[Map[now][i].e].price = dc;
p[Map[now][i].e].rate = dr;
q.push(Map[now][i].e);
}
}
}
cout << (floor)(1000000LL * p[n].rate) << '\n';
return ;
}
总结:只要选取合理的存储方式,这类题目基本代码难度不高。
Milk Pumping的更多相关文章
- Milk Pumping G&Milk Routing S 题解
Milk Pumping G&Milk Routing S 双倍经验时间 洛谷P5837 [USACO19DEC]Milk Pumping G 洛谷P3063 [USACO12DEC]Milk ...
- 题解 P5837 【[USACO19DEC]Milk Pumping】
这题其实想法挺简单的,因为他只需要简单的把每个点的花费和流量用dp记下来就好了 1.怎么记: 首先考虑dp的状态.由于所在的点和流量都要记,所以dp开二维,一维记所在的点,另一维记去哪 //dp[i] ...
- 洛谷 P5837 [USACO19DEC]Milk Pumping G (单源最短路,dijkstra)
题意:有一\(n\)个点,\(m\)条边的双向图,每条边都有花费和流量,求从\(1\)~\(n\)的路径中,求\(max\frac{min(f)}{\sum c}\). 题解:对于c,一定是单源最短路 ...
- P5837 [USACO19DEC]Milk Pumping G
题目描述 Farmer John 最近为了扩张他的牛奶产业帝国而收购了一个新的农场.这一新的农场通过一个管道网络与附近的小镇相连,FJ 想要找出其中最合适的一组管道,将其购买并用来将牛奶从农场输送到小 ...
- USACO19DEC题解
Bronze A Cow Gymnastics 题目:https://www.luogu.com.cn/problem/P5831 题解:用数组存一下出现位置,O(n^2)枚举一下就好. 代码: #i ...
- USACO 2019 December Contest 随记
Forewords 今年 USACO 的比赛变化挺大的,有部分分了,而且不再是固定十个点了(部分分只说这几个点满足这几个性质,以为十个点的我还高兴了一会,一提交,...),除此之外居然赛后还排名了.这 ...
- 洛谷 P3063 [USACO12DEC]牛奶的路由Milk Routing
P3063 [USACO12DEC]牛奶的路由Milk Routing 题目背景 征求翻译.如果你能提供翻译或者题意简述,请直接发讨论,感谢你的贡献. 题目描述 Farmer John's farm ...
- USACO Milk Routing
洛谷 P3063 [USACO12DEC]牛奶的路由Milk Routing 洛谷传送门 JDOJ 2334: USACO 2012 Dec Silver 3.Milk Routing JDOJ传送门 ...
- BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 [后缀数组]
1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1017 Solved: ...
随机推荐
- OpenJudge - 2977:生理周期
原题链接 总时间限制: 1000ms 内存限制: 65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天 ...
- Entity Framework Core遇到的问题汇总
1.add-migration : 无法将“add-migration”项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. 使用E ...
- postman接口超时设置,用于debug等断点调试
Settings->General->Request Timeout in ms(0 for infinity):设置请求超时的时间,默认为0
- mysql基础之-mysql锁和事务(七)
0x01 MySQL锁: 执行操作时施加锁的模式 读锁:用户在读的时候施加的锁,为防止别人修改,但是用户可以读,还被称为共享锁 不会对其他用户进行阻塞 理解: ----->(这里的不阻塞,是可以 ...
- 温故知新-多线程-深入刨析park、unpark
文章目录 摘要 park.unpark 看一下hotspot实现 参考 你的鼓励也是我创作的动力 Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | ...
- @codeforces - 549E@ Sasha Circle
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定两个点集 M 与 S,求是否存在一个圆能够分割两个点集. 原 ...
- animation 动画 与 transition
animation: name duration timing-function delay iteration-count direction; 值 描述 animation-name 规定需要绑定 ...
- Java 源码刨析 - 线程的状态有哪些?它是如何工作的?
线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在. 一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源.更加轻量化,也因 ...
- Bestcoder Round8
4989Summary 既然用C++了就偷懒直接用STL大法了 #include<iostream> #include<algorithm> #include<vecto ...
- Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 1. 深度学习概论)
=================第1周 循环序列模型=============== ===1.1 欢迎来到深度学习工程师微专业=== 我希望可以培养成千上万的人使用人工智能,去解决真实世界的实际问 ...