求助,40dijkstra

P2299 Mzc和体委的争夺战

@[海盗村长](/space/show?uid=119137)
by Alphaban @ 2019-10-05 20:15:46


@[CodePower](/space/show?uid=112109) WA了还是T了
by yummy @ 2019-10-05 20:19:06


@[yummy](/space/show?uid=101694) wa了,qwq
by Alphaban @ 2019-10-05 20:20:08


@[yummy](/space/show?uid=101694) 70分 ```cpp #include<stdio.h> #include<string.h> int n,m,from,to,x,f[2505],b[2505],w[2505][2505]; template<typename TYPE> inline void read(TYPE&x){ x=0;int w=1;register char c=getchar();for(;c<'0'||c>'9';c=getchar()) if (c=='-') w=-1; for(;c>='0'&&c<='9';x=(x<<3)+(x<<1)+(c^48),c=getchar());x*=w; } int main(){ //freopen("tx.in","r",stdin);freopen("tx.out","w",stdout); read(n);read(m);memset(w,0x3f,sizeof(w));memset(f,0x3f,sizeof(f));b[0]=1; for(register int i=1;i<=m;i++){ read(from);read(to);read(x); if (w[from][to]>x) w[from][to]=x;w[to][from]=x; } for(register int i=1;i<=n;i++) f[i]=w[1][i]; f[1]=0;int minl,k; for(register int i=1;i<=n-1;i++){ minl=0x3f3f3f3f;k=0; for(register int j=1;j<=n;j++) if (!b[j]&&f[j]<minl) minl=f[j],k=j; if (k==0) break; b[k]=1; for(register int j=1;j<=n;j++) if (f[k]+w[k][j]<f[j]) f[j]=f[k]+w[k][j]; } return printf("%d\n",f[n]),0; } /* ±¾Ìâ²ÉÓÃdijkstraËã·¨£¬ÂãÌâ ×î¶Ì· ²ÉÓÃSPFA»á½Ï¿ìһЩ */ ```
by Alphaban @ 2019-10-05 20:30:29


巧了,我刚想跟你说有重边的问题
by yummy @ 2019-10-05 20:33:39


话说你在读入边的时候正向边特判了反向边咋漏了
by yummy @ 2019-10-05 20:38:20


@[CodePower](/space/show?uid=112109)
by yummy @ 2019-10-05 20:38:30


Orz hwq 神hwq怎么不压行啊
by muyang_233 @ 2019-10-05 20:39:56


@[yummy](/space/show?uid=101694) 手残了,将逗号打成分号了,谢谢
by Alphaban @ 2019-10-05 20:41:27


@[CodePower](/space/show?uid=112109) 其实不建议你用逗号,建议你少压行
by yummy @ 2019-10-05 20:42:40


| 下一页