題解 codevs2800 送外賣

2021-08-25 11:59:44 字數 494 閱讀 5433

這道題就是乙個狀壓 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點 他的單位 請問最短時間是多少。現在已知任意兩個城市的直接通...