poj3311 状态压缩
来源:互联网 发布:简易编程软件 编辑:程序博客网 时间:2024/06/11 22:03
和2817很像
虽然短小,但是很典型,故作文以记之。
求全排列后的最优值。
dp[i][j]表示状态为j时,第i个为最后添加的 时的最优值
#include <iostream>using namespace std;#define oo 10000000int p[11]={1,2,4,8,16,32,64,128,256,512,1024};int g[11][11],dp[11][1026],n,ans;int main() { while (scanf("%d",&n)) { if (n==0) break; for (int i=0;i<=n;i++) for (int j=0;j<=n;j++) if (i==j) g[i][j] = 0; else g[i][j] = oo; for (int i=0;i<=n;i++) for (int j=0;j<=n;j++) scanf("%d",&g[i][j]); for (int k=0;k<=n;k++) for (int i=0;i<=n;i++) for (int j=0;j<=n;j++) if (i==j) continue; else if (g[i][j]>g[i][k]+g[k][j]) g[i][j] = g[i][k] + g[k][j]; else dp[i][j] = oo; for (int j=0;j<p[n];j++) for (int i=1;i<=n;i++) if (j==p[i-1]) dp[i][j] = g[0][i]; else if (j&p[i-1]) { dp[i][j] = oo; for (int k=1;k<=n;k++) if ((k!=i) && (j&p[k-1])) dp[i][j] = min(dp[i][j],dp[k][j^p[i-1]]+g[k][i]); } ans = oo; for (int i=1;i<=n;i++) ans = min(ans, dp[i][p[n]-1]+g[i][0]); printf("%d\n",ans); } return 0;}
- poj3311 状态压缩
- poj3311 状态压缩dp
- POJ3311(状态压缩DP+Floyd)
- poj3311(状态压缩dp)
- poj3311 Hie with the Pie,状态压缩
- POJ3311(TSP问题,状态压缩DP)
- POJ3311 Hie with the Pie(状态压缩dp)
- POJ3311:Hie with the Pie(floyd+状态压缩DP)
- 二进制状态压缩dp(旅行商TSP)POJ3311
- 【POJ3311】Hie with the Pie(状态压缩DP)
- 状态压缩DP总结【POJ3311】【HDU3001】【POJ2288】【ZOJ4257】【POJ2411】【HDU3681】
- poj3311 Hie with the Pie(状态压缩dp)
- poj3311 Hie with the Pie【floyd最短路+状态压缩】
- [Floyd+状态压缩DP]poj3311 Hie with the Pie
- poj3311 动态规划 轮廓线 或者状态压缩
- POJ3311:Hie with the Pie(floyd+状态压缩DP)
- 状态压缩DP总结【POJ3254】【POJ1185】【POJ3311】【HDU3001】【POJ2288】【ZOJ4257】【POJ2411】【HDU3681】
- POJ3311——Hie with the Pie(状态压缩DP)
- ADO.NET的记忆碎片(七)
- ADO.NET的记忆碎片(八)
- MSWORD常量定义
- ADO.NET的记忆碎片(九)
- 火狐4 谷歌12浏览器中,使用jquery.tools.min 1.2.5版的Jquery Validator
- poj3311 状态压缩
- Android开发--Intent-filter属性详解
- jsp指令元素
- 函数调用栈与活动记录
- Android 之 IntentFilter 详解
- TCP/IP笔记二:IP头部/UDP/TCP校验和的计算
- org.hibernate.mapping与java.util 中List的区别
- S3C2440启动代码详细注释
- 数字图像基础知识详解