1 条题解
-
0问号 (周文浩) LV 10 @ 2024-4-3 16:29:21
#include <bits/stdc++.h> #define MAXN 100007 using namespace std; struct Edge { int t,w; }; vector<Edge> G[MAXN]; int n,m; double f[MAXN]; inline void dfs(int u) { //printf("u = %d\n",u); if (u==n || f[u]!=0) return; int k=(int)G[u].size(); for (int i=0;i<(int)G[u].size();i++) { int v=G[u][i].t,w=G[u][i].w; dfs(v),f[u]+=(w+f[v])/k; } //printf("%d -> %.2lf\n",u,f[u]); } inline int read() { int w=0,X=0; char ch=0; while (!isdigit(ch)) w|=ch=='-',ch=getchar(); while (isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar(); return w?-X:X; } int main() { n=read(),m=read(); for (int i=1;i<=m;i++) { int a=read(),b=read(),c=read(); G[a].push_back((Edge){b,c}); } dfs(1),printf("%.2lf",f[1]); return 0; }
- 1
信息
- ID
- 128
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 6
- 上传者