這道題就是乙個狀壓 dp 的模板題,用 dp[i][k] 表示當前位置在 i ,當前狀態為 k(乙個二進位制數,1 表示這個地方走過了,0表示沒走過) 的最小總路程。
首先肯定要先做一遍 floyd,然後進行簡單的轉移就行了:dp[i][now]=min(dp[i][now],min(dp[j][now],dp[j][now-(1<
#include
#include
#define min(a,b) ((a#define inf 999999999
#define lim (1<<(n+1))-1 //全 1 的二進位制數
using
namespace
std;
int n,d[25][25],dp[25][(1
<<16)];
int main()
cout
<0][lim];
return
0;}
Codevs 2800 送外賣 狀壓DP
2800 送外賣 時間限制 2 s 空間限制 256000 kb 題目等級 鑽石 diamond 題目描述 description 有乙個送外賣的,他手上有n份訂單,他要把n份東西,分別送達n個不同的客戶的手上。n個不同的客戶分別在1 n個編號的城市中。送外賣的從0號城市出發,然後n個城市都要走一次...
codevs2800送外賣 floyd 狀壓dp
時間限制 2 s 空間限制 256000 kb 題目等級 鑽石 diamond 有乙個送外賣的,他手上有n份訂單,他要把n份東西,分別送達n個不同的客戶的手上。n個不同的客戶分別在1 n個編號的城市中。送外賣的從0號城市出發,然後n個城市都要走一次 乙個城市可以走多次 最後還要回到0點 他的單位 請...
CODEVS 2800 送外賣 狀態壓縮 動態規劃
題目描述 description 有乙個送外賣的,他手上有n份訂單,他要把n份東西,分別送達n個不同的客戶的手上。n個不同的客戶分別在1 n個編號的城市中。送外賣的從0號城市出發,然後n個城市都要走一次 乙個城市可以走多次 最後還要回到0點 他的單位 請問最短時間是多少。現在已知任意兩個城市的直接通...