hdu--5418Victor and World+狀態壓縮DP
題目連結:點選進入
昨天晚上比賽的時候,我居然想著用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;
}
相關文章
- 簡易狀態壓縮DP
- HDU 5816 Hearthstone(狀態壓縮DP+概率)
- bzoj4145: [AMPPZ2014]The Prices(狀態壓縮+Dp)
- 狀態壓縮
- 動態規劃——用二進位制表示集合的狀態壓縮DP動態規劃
- 狀壓DP
- 狀壓 dp
- [狀壓dp] 最短Hamilton路徑(模板題+狀壓dp)
- HDU 3006 The Number of set (狀態壓縮)
- 論文閱讀 狀態壓縮
- POJ3279 Fliptile【狀態壓縮+DFS】
- ACM-ICPC 2018 南京賽區網路預賽__E AC Challenge【狀態壓縮+DP】ACM
- 動態規劃中初識狀態壓縮(入門)動態規劃
- POJ 2777 Count Color (線段樹+狀態壓縮)
- 狀壓DP基礎入門
- HDU 1074 Doing Homework(狀壓DP)
- 合理安排(狀壓dp,包括技巧)
- E - Remove Pairs(狀壓dp+博弈論)REMAI
- NOI2001 炮兵陣地(狀壓dp)
- Luogu P1777 幫助 題解 [ 紫 ] [ 線性 dp ] [ 狀壓 dp ]
- 分組(狀壓dp+技巧:快速列舉子集)
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- Codeforces 11D A Simple Task 題解 [ 藍 ] [ 狀壓 dp ]
- 百練4124:海賊王之偉大航路(狀壓DP)
- 檔案壓縮和解壓縮
- Python實現壓縮和解壓縮Python
- JS壓縮方法及批量壓縮JS
- linux下壓縮解壓縮命令Linux
- linux壓縮和解壓縮命令整理Linux
- CF79D Password (差分+狀壓 dp+最短路/bfs)
- 一類哈密頓路徑/迴路為背景的狀壓dp
- CSP之壓縮編碼(動態規劃)動態規劃
- Linux tar分卷壓縮與解壓縮Linux
- CentOS 壓縮解壓CentOS
- Linux壓縮解壓Linux
- linux 高效壓縮工具之xz的壓縮解壓使用Linux
- Linux中檔案的壓縮和解壓縮Linux
- Gzipped 壓縮