额,邻接矩阵的深搜加上记忆化,我翻了翻记忆化数组,发现存储的已计算最短路都没错,为啥就A不了题呢
T是存图的数组,a是起点,b是终点
int dis(int a,int b){
if(jyh[a][b])return jyh[a][b];
if(a==b)return 0;
int ret=9999999;
for(int i=1;i<=n;i++){
if(flag[i]==0&&T[a][i]!=0){
flag[i]=1;
if(jyh[i][b]==0){
jyh[i][b]=dis(i,b);
jyh[b][i]=jyh[i][b];
}ret=min(ret,T[a][i]+jyh[i][b]);
flag[i]=0;
}
}return ret;
}