@[tan_gent](/space/show?uid=31728) 最好直接用`for`初始化数组……
~~头像好评~~
by info___tion @ 2019-05-10 21:12:29
@[tan_gent](/space/show?uid=31728)
```cpp
#include <bits/stdc++.h>
using namespace std;
#define LL long long
int n,m,s;
LL a[10009][10009];
LL d[10009];
bool vis[10009];
LL f,g,w;
int main(){
scanf("%d %d %d",&n,&m,&s);
memset(a,0x3f,sizeof(a));
memset(d,0x3f,sizeof(d));
d[s]=0;
for(int i=1;i<=m;i++){
scanf("%d %d %d",&f,&g,&w);
a[f][g]=min(w,a[f][g]);
}
int nn=n;
int minn,minx;
while(nn--){
minn=0x3f3f3f3f;
minx=0;
for(int x=1;x<=n;x++){
if(d[x]<minn&&vis[x]==0){
minn=d[x];
minx=x;
}
}
vis[minx]=1;
for(int i=1;i<=n;i++){
if(a[minx][i]<0x3f3f3f3f){
d[i]=min(d[i],d[minx]+a[minx][i]);
}
}
}
for(int i=1;i<=n;i++){
printf("%lld ",d[i]);
}
printf("\n");
return 0;
}
```
这样应该就行了
by Genius_Z @ 2019-05-10 21:14:58
哦,好的,感谢各位的帮助!
by si_zhong @ 2019-05-10 21:16:41
@[Genius_Z](/space/show?uid=110271)
by si_zhong @ 2019-05-10 21:16:46
@[Genius_Z](/space/show?uid=110271) 等等,全MLE是为什么?
by si_zhong @ 2019-05-10 21:19:24
@[tan_gent](/space/show?uid=31728)
其实这题全开int就够用了
by Genius_Z @ 2019-05-10 21:20:01
$10000 * 10000$的long long肯定会MLE
by Genius_Z @ 2019-05-10 21:20:41
1e8的int也会的吧......
by 111l @ 2019-05-10 21:21:09
还是建议lz学习一下邻接表存图
by 111l @ 2019-05-10 21:21:57
刚才看了一下这题空间128M,邻接矩阵应该过不去emm,1e8的int是380M左右,所以还是建议lz学一下邻接表吧
@[tan_gent](/space/show?uid=31728)
by Genius_Z @ 2019-05-10 21:24:27