, , - , TSP, , - , O (3 ^ (m * n) * (m * n)), DP-
O(3^(m*n)*(m*n)):
int mindist = infinity;
void GridTSP(int x,int y,int visited[][],int dist,int total,int n,int m) {
if(total==n*m) {
if(dist<mindist)
mindist = dist;
}
else if(visited[x][y]) {
return;
}
visited[x][y] = true;
for each neighbour (a,b) of (x,y) :
GridTSP(a,b,visited,dist+cost(x,y,a,b),total+1,n,m);
visited[x][y] = false;
}
GridTSP(0,0,new int[3][4],0,0,3,4);
source
share