比赛 2025暑期集训第5场图论专场 评测结果 AAAAAAAAAA
题目名称 Milk Pumping 最终得分 100
用户昵称 惊世猴人 运行时间 0.038 s
代码语言 C++ 内存使用 3.75 MiB
提交时间 2025-07-09 09:54:32
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define AFPS SPFA
struct gd{
	int f,t,d,v;
}x;
int dp[1001],dis[1001],ll[1001];
int n,m;
vector<gd>v[1001];
queue<int>q;
bool vis[100001];
void SPFA(){
	q.push(1);
	vis[1]=1;
	while(!q.empty()){
		int x=q.front();
		q.pop();
		vis[x]=0;
		for(int i=0;i<v[x].size();i++){
			if(dp[v[x][i].t]<1000000*min(ll[x],v[x][i].v)/(dis[x]+v[x][i].d)){
				dp[v[x][i].t]=1000000*min(ll[x],v[x][i].v)/(dis[x]+v[x][i].d);
				ll[v[x][i].t]=min(ll[x],v[x][i].v);
				dis[v[x][i].t]=dis[x]+v[x][i].d;
				if(!vis[v[x][i].t]){
					vis[v[x][i].t]=1;
					q.push(v[x][i].t);
				}
			}
		}
	}
}
int main(){
	freopen("pump.in","r",stdin);
	freopen("pump.out","w",stdout);
	cin>>n>>m;
	memset(ll,0x3f,sizeof(ll));
	for(int i=1;i<=m;i++){
		cin>>x.f>>x.t>>x.d>>x.v;
		v[x.f].push_back(x);
		swap(x.f,x.t);
		v[x.f].push_back(x);
	}
	AFPS();
	cout<<dp[n];
	fclose(stdin);
	fclose(stdout);
	return 0;
}