poj 2404 Jogging Trails 状压dp
来源:互联网 发布:固态硬盘克隆软件 编辑:程序博客网 时间:2024/05/19 00:10
//poj 2404//sep9#include <iostream>using namespace std;const int MAX=INT_MAX/2;const int MAXN=16;int n,m;int deg[MAXN],d[MAXN][MAXN],dp[1<<MAXN];int rec(int s){if(s==0)return dp[s]=0;if(dp[s]>0) return dp[s];int minx=INT_MAX;for(int i=0;i<n;++i)for(int j=i+1;j<n;++j){if(((s>>i)&1)&&((s>>j)&1)){int ss=s&(~(1<<i));ss=ss&(~(1<<j));minx=min(minx,rec(ss)+d[i+1][j+1]);}}return dp[s]=minx;}int main(){while(scanf("%d",&n)==1&&n){memset(deg,0,sizeof(deg));memset(dp,-1,sizeof(dp));for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)d[i][j]=MAX;scanf("%d",&m);int res=0;while(m--){int u,v,w;scanf("%d%d%d",&u,&v,&w);if(w<d[u][v])d[u][v]=d[v][u]=w;++deg[u];++deg[v];res+=w;}for(int k=1;k<=n;++k)for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)d[i][j]=min(d[i][j],d[i][k]+d[k][j]);int s=0;for(int i=1;i<=n;++i)if(deg[i]%2)s|=(1<<(i-1));res+=rec(s);printf("%d\n",res);}return 0;}
0 0
- poj 2404 Jogging Trails 状压dp
- POJ 2404 Jogging Trails
- POJ 2404 Jogging Trails 笔记
- POJ-2404 Jogging Trails (中国邮递员)
- POJ 2404 Jogging Trails (中国邮递员问题,状态压缩DP)
- uva 10296 - Jogging Trails (中国邮路问题 状压dp)
- Light OJ 1086 Jogging Trails (Floyd+状压DP)
- lightoj1086 - Jogging Trails(状态压缩dp)
- Light oj 1086 - Jogging Trails(状压dp 将图变成欧拉图)
- 1086 - Jogging Trails (欧拉回路+dp)
- JOJ1871:Jogging Trails
- FZU1009 Jogging Trails
- lightoj1086 Jogging Trails
- POJ2404:Jogging Trails
- [中国邮路问题 欧拉回路 最短路 一般图匹配||状压DP] FZU 1009 Jogging Trails
- poj2404 Jogging Trails 欧拉回路、最短路、搜索
- UVA - 10296 Jogging Trails (中国邮路问题)
- LightOJ - 1086 Jogging Trails(欧拉+状态压缩)
- mysql闪退解决
- 浏览器问题-FireFox-Adobe Flash 插件已崩溃解决方法
- Excel导入CSV文件中文乱码
- How To Add The Remi, EPEL And RPMFusion Repositories On CentOS 7
- jQuery的deferred对象详解
- poj 2404 Jogging Trails 状压dp
- UE4的AI c++代码初始化
- UE4的MaterialInstance作用
- 设计模式学习笔记--原型模式
- UE4的射线拾取
- Java中的String与常量池
- printf() 输出到哪里了
- 文章标题
- mongodb