这几天在想办法求解TSP问题,众所周知,TSP问题是NP难问题,现在我们用动态规划来求解之。
其实这个可以转化为一个填表问题。
其中一步是求解集合的所有子集合,整个问题还没完,等我哪天有时间了,把他详细写出来。
把求子集合的代码先贴在这里。
#include<stdio.h>
#define N 100
bool b[N];
int n,a[N];
void set_combination(int s){
int i;
if(s==n){
for(i=0;i<n;i++)
if(b[i])
printf("%d ",i);
printf("\n");
return;
}
b[s]=false;
set_combination(s+1);
b[s]=true;
set_combination(s+1);
}
int main(){
while(scanf("%d",&n))
set_combination(0);
return 0;
}