類似0 1揹包的dfs 選與不選

2021-09-10 14:08:11 字數 917 閱讀 3763

題目大意:

思路:每個傳送陣可以選擇傳送或者不傳送。

從n->1開始考慮。從終點最遠的傳送陣開始列舉

#include

using

namespace std;

#define ll long long

struct node

node[16]

;int

cmp(node a, node b)

ll t

(ll l, ll r)

//從l到r不經過傳送陣的最少時間

if(s==1)

ll c=

(ll)

log2

(s);

c=r-

pow(

2, c)

;return

t(l, c)+1

;}ll dfs

(int n,

int cut)

else

if(n>=node[cut]

.y)//如果當前位置》傳送陣的終點:選擇傳送或者不傳送的最少時間的方案

else

}int

main()

}sort

(node+

1, node+cut+

1, cmp)

;//從終點最大的傳送陣開始選擇

cout<<

dfs(n, cut-1)

<

//從n->1

return0;

}

動態規劃 0 1揹包選不選

1.給你n件物品,給你乙個包重量為m 問你正好裝 積為m?有多少種選擇 我這件物品要麼就是裝進來,要麼就是不裝進來,2 n種選擇 找到遞迴退出條件 揹包容量為0,則有唯一一種裝法 0件物品則只有0件裝法 poj 2755.cpp 定義控制台應用程式的入口點。include stdafx.h incl...

看懂0 1揹包與完全揹包的空間優化

0 1揹包的主要思路就是 這件物品,取還是不取。用乙個二維陣列dp i v 來表示對第i個物品,揹包容量為v時的情況。c i 表示第i件物品的體積,w i 表示第i件物品的價值。那麼考慮第i件物品取與不取 如果不取,那麼就可以轉化為i 1件物品 容量仍然為v 價值沒有增加的情況 dp i 1 v 如...

01揹包 與 完全揹包 中的降維

每種物品只有一件 對於二維降一維,外層迴圈中的每乙個i其實是不需要記錄的 所以在第i次迴圈剛開始時,所有的dp都未更新,此時下面的dp x 記錄的是前i 1個物品在容量是x時的最大值 x 0 x v dp 0 dp 1 dp 2 dp dp v 相當於dp i x dp i 1 x 和dp i 1 ...