Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
150101 唐钧 最短路径 C++ 运行出错 0 0 MS 248 KB 883 2024-06-01 15:30:22

Tests(0/10):


#include<bits/stdc++.h> using namespace std; const int N=0x7ffffff; int n,a[197][197],f[197],indg[197],minn=INT_MAX; vector<int>vec; void TopSort(int a[197][197],int *indg) { queue<int>q; while(!q.empty()||vec.size()<n) { for(int i=1;i<=n;i++) { if(indg[i]==0) { q.push(i); indg[i]=-114514; } int v=q.front(); vec.push_back(v); q.pop(); for(int i=1;i<=n;i++) { if(a[v][i]!=-114514&&indg[i]!=-1) { indg[i]--; } } } } } int main() { int a1,b,c; cin>>n; while(a1!=0&&b!=0&&c!=0) { cin>>a1>>b>>c; a[a1][b]=c; indg[b]++; } TopSort(a,indg); for(int i=1;i<=n-1;i++) { f[i]=N; } f[n]=0; for(int i=n-1;i>=1;i--) { for(int j=n;j>=i;j--) { if(a[i][j]>0&&f[j]!=N&&f[j]+a[i][j]<f[i]) { f[i]=f[j]+a[i][j]; } } } cout<<f[1]; return 0; }


测评信息: