狀壓DP 售貨員的難題

2021-08-29 02:41:53 字數 782 閱讀 6489

某鄉有nn個村莊(1輸入格式:

村莊數nn和各村之間的路程(均是整數)。

輸出格式:

最短的路程。

輸入樣例#1:

3

0 2 1

1 0 2

2 1 0

輸出樣例#1:

3
dp[i][j]表示i狀態(i的二進位制表示第x位上是1 則(x+1)號村莊已被走過)以j+1號村莊作結的路程

所以最終答案為min(dp[(1《由於必須從1號村莊出發 並結束於1號村莊 且(1<<0)=1

可以初始化  dp[1][0]=0;

#include#include#include#include#include#include#include#include#include#include#include#include#define maxn (1<<20)+1

using namespace std;

int dp[maxn][20],minn,n,wis[21][21];

//dp[i][j]表示以j結尾的i狀態

inline int read()

while(ch>='0'&&ch<='9')

return f*x;

}int main()

} }for(int i=0;icout<}

codevs2596 售貨員的難題 狀壓dp

時間限制 1 s 空間限制 32000 kb 題目等級 鑽石 diamond 某鄉有n個村莊 1 輸入描述 input description 村莊數n和各村之間的路程 均是整數 輸出描述 output description 最短的路程 樣例輸入 sample input 30 2 1 1 0 2...

洛谷 P1171 售貨員的難題 狀壓dp

某鄉有n個村莊 1 輸入格式 村莊數n和各村之間的路程 均是整數 輸出格式 最短的路程。輸入樣例 1 複製3 0 2 1 1 0 2 2 1 0 輸出樣例 1 複製3 輸入解釋 3 0 2 1 1 0 2 2 1 0 這道題卡常卡的太極限了 include include include inclu...

洛谷P1171 售貨員的難題 狀壓DP

題目描述 某鄉有n個村莊 1 201 120 有乙個售貨員,他要到各個村莊去售貨,各村莊之間的路程s 0 s 1000 s 0s 0 s 10 00 是已知的,且a村到b村與b村到a村的路大多不同。為了提高效率,他從商店出發到每個村莊一次,然後返回商店所在的村,假設商店所在的村莊為1,他不知道選擇什...