POJ 3186 動態規劃

2021-05-24 22:20:46 字數 789 閱讀 5440

題意:給定n個數

每次可以從頭或者尾取出資料

於是按取出來得順序,就可以排成乙個數列,假設這個數列為

a1,a2,a3,a4.......an

現在我們假設按照取出來的順序有乙個權值

w=a1*1+a2*2+a3*3+....an*n

現在需要程式設計求出,如何控制取數的順序,讓w的值最大

思路:首先我以為是貪心,每次取最小值出來就可以了。。可是貪心的思路是錯的。。有反例的

然後看到帖子上有人說這個題是動態規劃,於是我就朝動態規劃的方向進行構思

其實這個動態轉移方程還比較好想,可以開乙個二維的陣列用來存當前的最大值

由於每次要麼從頭取,要麼從尾取,於是狀態轉移方程為:

dp[i][j]=max(dp[i-1][j]+v[i]*(i+j),dp[i][j-1]+v[n-j+1]*(i+j));

然後適當注意一下邊界條件就可以ac了~~

my ugly code:

#include#includeusing namespace std;

int dp[2005][2005];

int v[2005];

int max(int a,int b)

int main()

int ans=0;

for(i=0;i<=n;i++)

if(dp[i][n-i]>ans)

ans=dp[i][n-i];

printf("%d/n",ans);

} return 0;

}

poj 動態規劃 1141

dp練習的第三道題,依然花了我斷斷續續好幾個小時 有人說看到題目裡的 2.if s is a regular sequence,then s and s are both regular sequences.3.if a and b are regular sequences,then ab is ...

動態規劃 硬幣 POJ

總時間限制 1000ms 記憶體限制 262144kb 描述 太空人bob有一天來到火星上,他有收集硬幣的習慣。於是他將火星上所有面值的硬幣都收集起來了,一共有n種,每種只有乙個 面值分別為a1,a2 an。bob在機場看到了乙個特別喜歡的禮物,想買來送給朋友alice,這個禮物的 是x元。bob很...

POJ 動態規劃 3

動態規劃 需要用資料結構優化的動態規劃 poj2754,poj3378,poj3017 四邊形不等式理論 斜率優化 poj1160,poj1180,poj3709 較難的狀態dp 插頭dp poj3133,poj1739,poj2411 poj1763 需要用資料結構優化的動態規劃 poj 3017...