hdu--5418Victor and World+状态压缩DP
来源:互联网 发布:无线网络控制软件 编辑:程序博客网 时间:2024/06/10 08:44
题目链接:点击进入
昨天晚上比赛的时候,我居然想着用dfs做这道题,果断超时了。其实因为城市的数量非常的小,n最大才12,所以我们是可以借助于二进制进行状态压缩的;定义dp[s][i]表示当前访问城市的情况为s时下一个访问城市为i时的最小油量,则转移方程为dp[s|(1<<(i-1))]=min(dp[s][j]+dis[i][j]),状态转移方程的意思就是从s中找到已经访问过的城市j,然后再从j访问i;dis[i][j]表示的是i,j之间最短路的长度。ans=min(dp[(1<
#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int INF=100000000+100;int dis[20][20];int dp[1<<20][20];int n,m;void floyd(){ for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) dis[i][j]=dis[i][j]<dis[i][k]+dis[k][j]?dis[i][j]:dis[i][k]+dis[k][j];}int main(){ int t; freopen("in.txt","r",stdin); scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) dis[i][j]=INF; dis[i][i]=0; } for(int i=0;i<m;i++) { int a,b,w; scanf("%d%d%d",&a,&b,&w); if(dis[a][b]>w) dis[a][b]=dis[b][a]=w; } floyd(); memset(dp,0x3f,sizeof(dp)); dp[1][1]=0; for(int s=1;s<(1<<n);s++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(!(s&(1<<(i-1)))&&(s&(1<<(j-1)))) dp[s|(1<<(i-1))][i]=min(dp[s|(1<<(i-1))][i],dp[s][j]+dis[j][i]); } int ans=0x3f3f3f3f; for(int i=1;i<=n;i++) ans=min(ans,dp[(1<<n)-1][i]+dis[i][1]); printf("%d\n",ans); } return 0;}
1 0
- hdu--5418Victor and World+状态压缩DP
- hdu 5418 Victor and World【状态压缩】
- hdu 5418 Victor and World 状态压缩dp spfa最短路 floyed最短路
- BestCoder Round #52 (div.2) HDU 5418 Victor and World (DP+状态压缩)
- hdu 5418 Victor and World 状态压缩dp,旅行商问题
- hdu 5418 Victor and World 状态压缩+SPFA最短路
- HDU 5418 Victor and World(状态压缩路径DP或+floyd 两种方法 求 玈行商问题)经典
- hdu 5418 Victor and World 状压DP
- hdu 5418 Victor and World(dp)
- HDU Victor and World (最短路+状态压缩)
- hdu 5418 Victor and World
- hdu 5418 Victor and World
- hdu 5418 Victor and World (floyd+状压dp)
- hdu 5418 Victor and World(floyd+状压dp)
- HDU 5418 Victor and World(状压dp、最短路)
- 【HDOJ 5418】 Victor and World (状压dp)
- HDOJ 5418 Victor and World 状压DP
- HDU-5418 Victor and World(状压+spfa)
- noip2011初赛-大整数开方
- HDU5386
- 关于是否要进行人生规划
- Java精确运算(BigDecimal)
- qq源码
- hdu--5418Victor and World+状态压缩DP
- 黑马学习笔记_面向对象
- noip2012初赛-坐标统计
- 【Java】Java小游戏之Shoot游戏源码及详解
- ios图文混排简单演示
- BNU 39423 最大团
- LeetCode(6) ZigZag Conversion
- MyBatis官网下载步骤
- day08