傳送門
思路:
狀態定義f[i][j] 對前i種花選擇j花瓶的最大美學值。
對於題目要求的花種順序,只需要對i種花順序遍歷即可。
得到轉移方程
int pos=0;
for(int k=0;kif(dp[i-1]
[k]>dp[i-1]
[pos]
) pos=k;
//從i-1種花的狀態找到最大值,對當前狀態進行更新。
dp[i]
[j]=dp[i-1]
[pos]+w[i]
[j];
同時,用p[i][j]進行方案數的記錄,即p[i][j]=pos;因為當前狀態由pos位置狀態所轉移,最後即可逆推出答案。
**如下:
#include
#include
using
namespace std;
const
int n=
111;
int dp[n]
[n];
int w[n]
[n];
int p[n]
[n];
void
print
(int i,
int j)
intmain()
int ans=0;
for(
int i=f;i<=v;i++)if
(dp[f]
[i]>dp[f]
[ans]
) ans=i;
//找到答案
cout<[ans]
(f,ans)
;//逆推
return0;
}
花店櫥窗設計 (動態規劃)
問題描述 假設以最美觀的方式布置花店的櫥窗,有f束花,每束花的品種都不一樣,同時,至少有 同樣數量的花瓶,被按順序擺成一行,花瓶的位置是固定的,並從左到右,從1到v順序編 號,v 是花瓶的數目,編號為1的花瓶在最左邊,編號為v的花瓶在最右邊,花束可以移動,並且每束花用1到f 的整數惟一標識,標識花束...
luogu1854 花店櫥窗布置 動態規劃
1854 花店櫥窗布置 把圖畫出來 一眼看過去就特別像走矩陣取數 然後我們就這樣做 但是要注意它的位置有限制 乙個花束i可取的花瓶位置j在i v n i之間 然後就是記錄路徑 include include include include include using namespace std de...
IOI 花店櫥窗
ioi 花店櫥窗 2017年8月14日 dp 遞迴輸出解決方案 假設你想以最美觀的方式布置花店的櫥窗。現在你有f束不同品種的花束,同時你也有至少同樣數量的花瓶被按順序擺成一行。這些花瓶的位置固定於架子上,並從1至v順序編號,v是花瓶的數目,從左至右排列,則最左邊的是花瓶1,最右邊的是花瓶v。花束可以...