P1171 售货员的难题
2017-05-18 19:22
267 查看
http://blog.csdn.net/senyelicone/article/details/56480378
http://blog.csdn.net/loi_seavot/article/details/49078331
P1171 售货员的难题
http://blog.csdn.net/loi_seavot/article/details/49078331
P1171 售货员的难题
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int d[50][50],ans=0x6fffffff; int f[30][1<<20]; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&d[i][j]); //走过的用1表示 // <=j个点都走过的状态 <j个点走过的状态 memset(f,127/3,sizeof f); f[1][1]=0; for(int s=0;s<(1<<n);s++) for(int i=1;i<=n;i++) { if((1<<(i-1) & s)==0)//要求s的状态 第i位(后面的点) 不能是1 { for(int j=1;j<=n;j++) if((1<<j-1) & s && i!=j)//要求s的状态 第j位(前面的点) 必须是1 f[i][(1<<(i-1))|s]=min(f[i][(1<<(i-1))|s],f[j][s]+d[j][i]); } } // for(int i=2;i<=n;i++) ans=min(ans,f[i][(1<<n)-1]+d[i][1]); printf("%d\n",ans); return 0; }
相关文章推荐
- P1171 售货员的难题
- 洛谷P1171 售货员的难题
- 洛谷P1171 售货员的难题【状压DP】
- 洛谷 P1171 售货员的难题 【状压dp】
- 洛谷 P1171 售货员的难题 【状压dp】
- 售货员的难题
- Luogu 1171 售货员的难题(状态压缩动态规划)
- 售货员的难题(codevs 2596)
- 2596 售货员的难题
- 【售货员的难题】
- codevs2596 售货员的难题(状压dp)
- 模拟退火算法——解决售货员的难题
- codevs 2596 售货员的难题
- Luogu 1171 售货员的难题(状态压缩动态规划)
- 【codevs2596】售货员的难题 状压DP
- codevs 2596 售货员的难题
- 洛谷 1171 售货员的难题 状压DP 解题报告
- 售货员的难题
- 2596 售货员的难题[状态压缩&&优先队列]
- 售货员的难题(0411)