Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int dp[1<<17][16],N,g[16][16];
- int TSP(void){
- int p,a(INF);
- CL(dp,-1);
- dp[1][0]=0;
- F(1<<N)FF(N)if(~dp[i][j])FT(1,N)
- if(!(i&(1<<k))){
- p=(i|(1<<k));
- if(!~dp[p][k])dp[p][k]=dp[i][j]+g[j][k];
- dp[p][k]=min(dp[p][k],dp[i][j]+g[j][k]);
- }
- for(int i(1);i<N;++i)
- if(~dp[(1<<N)-1][i])
- a=min(a,dp[(1<<N)-1][i]+g[i][0]);
- return a==INF?0:a;
- }
Advertisement
Add Comment
Please, Sign In to add comment