POJ 1837 天平問題

2021-08-18 20:30:44 字數 627 閱讀 6868

主要參考

題目:

題意:有乙個天平,左臂右臂各長15,然後給出n,m,n代表有幾個掛鉤,掛鉤給出負數代表在左臂的距離,正數則在右臂

m代表有m個砝碼,要你求出使得這個天平保持平衡有幾種方法,要求所有砝碼全部使用完

思路:首先我們先要明確dp陣列的作用,dp[i][j]中,i為放置的砝碼數量,j為平衡狀態,0為平衡,j<0左傾,j>0右傾,由於j作為下標不能是負數,所以我們要找乙個新的平衡點,因為15*20*20 = 7500,所以平衡點設定為7500,

然後我們可以得出動態方程 dp[i][j+w[i]*c[k])+=dp[i-1][j];

#include#include#include#includeusing namespace std;

int dp[21][15005];

int l[21],w[21];

int main()

for(int i=1;i<=g;i++)

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

dp[0][7500]=1;

for(int i=1;i<=g;i++)}}

}cout<}

}

poj 1837 揹包(讓天平平衡的方法)

題意 有乙個天平,天平左右兩邊各有若干個鉤子,總共有c個鉤子,有g個鉤碼,求將鉤碼全部掛到鉤子上使天平平衡的方法的總數。思路 寫的非常詳細 首先定義乙個平衡度j的概念 當平衡度j 0時,說明天枰達到平衡,j 0,說明天枰傾向右邊 x軸右半軸 j 0則相反 那麼此時可以把平衡度j看做為衡量當前天枰狀態...

演算法 動態規劃poj1837

複習了動態規劃 0 1揹包問題,核心方程就是 if c i j f i j f i 1 j 如果揹包的容量,放不下c i 則不選c i else f i j max f i 1 j f i 1 j c i v i 這裡註明一點,i指代物品數量,j指代揹包容積,那麼有兩種情況,乙個是不要第i件物品,那...

POJ 1837 簡單 DP 二逼 DP

這個題,讓我看到就想到最長上公升子串行,1000的大小,n 2 就可以 但是注意到,最高的兩個士兵可以是相同身高的,所以,再求出左右兩個最長上公升子串行之後,最後得出結果的時候要注意這一點。這個地方 wa 了好多次,這個題目的通過率這麼低 應該就是這個點。include include includ...