第九章 動態規劃 1262 例9 6 挖地雷

2021-10-05 07:06:25 字數 1186 閱讀 9541

【題目描述】

在乙個地圖上有n個地窖(n≤200),每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑,並規定路徑都是單向的,且保證都是小序號地窖指向在序號地窖,也不存在可以從乙個地窖出發經過若干地窖後又回到原來地窖的路徑。某人可以從任一處開始挖地雷,然後沿著指出的連線往下挖(僅能選擇一條路徑),當無連線時挖地雷工作結束。設計乙個挖地雷的方案,使他能挖到最多的地雷。

【輸入】

第一行:地窖的個數;

第二行為依次每個地窖地雷的個數;

下面若干行:

xi yi //表示從xi可到yi,xi挖到最多的雷。

【輸入樣例】

65 10 20 5 4 5

1 21 4

2 43 4

4 54 6

5 60 0

【輸出樣例】

3-4-5-6

34————————————————

思路:f[i] = max 邊界f[i]=w[i]

設w[i]為第i個地窖所藏地雷數。f[i]表示從第i個地窖開始最多可以挖出地雷數。

#include

#include

#define n 210

#define inf 0x3f3f3f3f

using

namespace std;

int b[n]

[n];

int w[n]

,p[n]

;int f[n]

;// 表示挖到地雷最大數

void

print

(int k)

//輸出挖地雷的順序

intmain()

int x,y;

while

(scanf

("%d%d"

,&x,

&y)!=

eof&& x &&y)

b[x]

[y]=1;

//標識x->y通路

int maxx =

-inf, k;

for(

int i =

1; i <= n;i++)}

if(f[i]

> maxx)

//計算挖到最多地雷數

}print

(k);

cout

}

第九章 動態規劃 1305 Maximum sum

輸入樣例 110 1 1 2 2 3 3 4 4 5 5 輸出樣例 13 提示 就是求最大子段和問題,樣列取2,2,3,3,4和5,baidu搜poj 2479 maximum sum,可獲得大量經典最大子段和問題的題目解析,本題o n2 演算法超時,必須用o n 演算法。思路 從左到右分別求出它們...

第九章 動態規劃 1300 雞蛋的硬度

1300 雞蛋的硬度 時間限制 1000 ms 記憶體限制 65536 kb 題目描述 最近xx公司舉辦了乙個奇怪的比賽 雞蛋硬度之王爭霸賽。參賽者是來自世界各地的母雞,比賽的內容是看誰下的蛋最硬,更奇怪的是xx公司並不使用什麼精密儀器來測量蛋的硬度,他們採用了一種最老土的辦法 從高度扔雞蛋 來測試...

第九章 動態規劃 1301 大盜阿福

1301 大盜阿福 時間限制 1000 ms 記憶體限制 65536 kb 提交數 3388 通過數 1400 題目描述 阿福是一名經驗豐富的大盜。趁著月黑風高,阿福打算今晚洗劫一條街上的店鋪。這條街上一共有 n 家店鋪,每家店中都有一些現金。阿福事先調查得知,只有當他同時洗劫了兩家相鄰的店鋪時,街...