Floyd算法Cpp实现

#include
#define max 10
using namespace std;
int ret[4][4]={0};
void set(int x,int y,int z){
	ret[x][y]=z;
}
void reset(){
	for(int i=0;i<4;i++)
	for(int k=0;k<4;k++)
	ret[i][k]=max;
}
void Folyd(){
	for(int k=0;k<4;k++)
	for(int i=0;i<4;i++)
	for(int j=0;j<4;j++)
		if((ret[i][k]+ret[k][j])
同warshall一样,顺序很重要。三重循环DP时候把内层k提到最外面,一样避免扫不全

你可能感兴趣的:(上机作业)