挖地雷問題 DP

2021-06-21 22:03:08 字數 1109 閱讀 6722

挖地雷問題

(p3.pas/c/cpp)

【問題描述】

在乙個地圖上有n個地窖(n<=20),每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑。如圖3

圖3當地窖及其連線的資料給出之後,某人可以從任一處開始挖地雷,然後可以沿著指出的連線往下挖(僅能選擇一條路徑),當無連線時挖地雷工作結束。設計乙個挖地雷的方案,使某人能挖到最多的地雷。

【輸入檔案】

n:                       (表示地窖的個數)

w1,w2,w3,……wn  (表示每個地窖中埋藏的地雷數量)

a12…………… .     a1n     地窖之間連線路徑(其中aij=1表示地窖i,j

a23…………..   a2n       之間是否有通路:通aij=1,不通aij==0)

an-1 an

【輸出檔案】

k1--k2--……….kv                  (挖地雷的順序)

max                           (挖地雷的數量)

【輸入樣例】

10,8,4,7,6

1 1  1  0

0  0  0

1  1

【輸出樣例】

1 ->3 -> 4 -> 5

max=27

【hint】

題目中的路徑是有向的且無環路(這是我做的改動原題中沒有要求)。

#include 

#include

int dp[21];

int a[21][21];

int w[21];

char p[21][21];

int main()

for(i=1;i<=n-1;i++)

for(j=i+1;j<=n;j++)

}memset(dp,0,sizeof(dp));

dp[n]=w[n];

int max=0;

int m=0;

p[n][0]=n;

for(i=n-1;i>=1;i--)

printf("%d\n",max);

return0;

}

挖地雷問題

問題描述 在乙個地圖上有n個地窖 n 20 每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑。如圖3 圖3當地窖及其連線的資料給出之後,某人可以從任一處開始挖地雷,然後可以沿著指出的連線往下挖 僅能選擇一條路徑 當無連線時挖地雷工作結束。設計乙個挖地雷的方案,使某人能挖到最多的地雷。輸入檔...

挖地雷問題

目錄dp二 使用一維陣列 在一條公路上埋有若干堆地雷,每堆地雷有一定的數量,地雷堆的編號為1,2,n,例如,埋有地雷數量如下 8 14 2 17 33 26 15 17 19 6此時,地雷的數量可用一維陣列a n 表示。同時,給出地雷堆之間的聯絡,從第1堆開始,它指出挖了此堆之後,還可以選擇繼續往下...

例9 6 挖地雷

時間限制 1000 ms 記憶體限制 65536 kb 在乙個地圖上有n個地窖 n 200 每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑,並規定路徑都是單向的,且保證都是小序號地窖指向在序號地窖,也不存在可以從乙個地窖出發經過若干地窖後又回到原來地窖的路徑。某人可以從任一處開始挖地雷,...