比赛 |
2025暑期集训第5场图论专场 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Milk Pumping |
最终得分 |
100 |
用户昵称 |
秋_Water |
运行时间 |
0.244 s |
代码语言 |
C++ |
内存使用 |
26.59 MiB |
提交时间 |
2025-07-09 09:43:54 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+7;
const int INF=1e9+7;
int m,n;
struct edge{
int to,val,lim;
};
vector<edge>G[N];
int dis[N],vis[N],lim[N];
void spfa(int x,int f){
queue<int>q;
for(int i=0;i<=n;i++){
vis[i]=0;
dis[i]=INF;
}
dis[x]=0;
vis[x]=1;
q.push(x);
while(!q.empty()){
int u=q.front();
q.pop();
vis[u]=0;
for(auto to:G[u]){
int v=to.to,w=to.val,limmm=to.lim;
if(dis[v]>dis[u]+w&&limmm>=f){
dis[v]=dis[u]+w;
if(!vis[v]){
q.push(v);
vis[v]=1;
}
}
}
}
}
int main(){
freopen("pump.in","r",stdin);
freopen("pump.out","w",stdout);
cin>>n>>m;
int a,b,c;
for(int i=1;i<=m;i++){
cin>>a>>b>>c>>lim[i];
G[a].push_back({b,c,lim[i]});
G[b].push_back({a,c,lim[i]});
}
int ans=0;
for(int i=1;i<=m;i++){
spfa(1,lim[i]);
if(dis[n]!=INF){
ans=max(ans,(int)floor((double)lim[i]/dis[n]*1000000));
}
}
cout<<ans<<"\n";
return 0;
}