5 条题解

  • -1
    @ 2025-5-25 9:27:34

    这题不难,修改一本通1381AC代码即可。 #include<bits/stdc++.h> using namespace std; double n,m,a[2001],b[2001][2001],s[2001],x,y; int c,d,e=1,z,f,g; int no(int f){ for(int i=1;i<=e;i++){ if(s[i]f){ return 0; } } return 1; } int main(){ cin>>n>>m; for(int i=0;i<=n;i++){ for(int j=0;j<=n;j++){ b[i][j]=-1; } } for(int i=1;i<=m;i++){ cin>>c>>d; if(b[c][d]-1&&b[d][c]-1){ cin>>x; b[c][d]=1-x/100; } else{ cin>>x; b[c][d]=max(b[c][d],1-x/100); } b[d][c]=b[c][d]; } cin>>f>>g; s[1]=f; for(int i=1;i<=n;i++){ a[i]=b[1][i]; } while(e<n){ y=-1; for(int i=1;i<=n;i++){ if(a[i]>y&&no(i)&&a[i]!=-1){ z=i; y=a[i]; } } e++; s[e]=z; for(int i=1;i<=n;i++){ if(b[z][i]!=-1&&no(i)){ if(a[i]-1){ a[i]=a[z]*-b[z][i]; } else{ a[i]=max(a[i],a[z]*b[z][i]); } } } } cout<<setprecision(8)<<fixed<<abs(100/a[g]); return 0; }

    信息

    ID
    2750
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    52
    已通过
    23
    上传者