洛谷P1854 線性DP 路徑記錄

2021-10-07 17:09:54 字數 852 閱讀 8215

題意:

把花放在花瓶裡,每個花對花瓶有不同的val值,輸出最大的val和方案

思路:很好想的dp,dp[i][j]=max(dp[i-1][k]+a[i][j]),dp在路徑記錄的時候,一般都開和狀態一樣的陣列,path[i][j]表示使得第i朵花放在第j個花瓶時候最大的上一層放在第幾個花瓶,遞迴輸出即可

#include

#include

#include

using

namespace std;

typedef

long

long ll;

int dp[

105]

[105];

int path[

105]

[105];

int a[

105]

[105];

const ll inf=

-0x3f3f3f3f

;void

print

(int x,

int y)

print

(x-1

,path[x]

[y])

;printf

("%d "

,y);

}int

main()

int ans=inf;

int cnt=0;

for(

int i=

1;i<=v;

++i)

}printf

("%d\n"

,ans)

;print

(f,cnt)

;return0;

}

洛谷P1854 花店櫥窗 線性dp 路徑輸出

題目大意 給定 n 個數字,編號分別從 1 n,m 個位置,n 個數字按照相對大小順序放在 m 個位置裡,每個數放在每個位置上有乙個對答案的貢獻值,求一種擺放方式使得貢獻值最大。題解 一道典型的線性dp問題,設 dp i j 表示前 i 個數擺放在了不超過前 j 個位置,且第 i 個數字正好放在 j...

洛谷 P1854 花店櫥窗布置

題目描述 某花店現有f束花,每一束花的品種都不一樣,同時至少有同樣數量的花瓶,被按順序擺成一行,花瓶的位置是固定的,從左到右按1到v順序編號,v是花瓶的數目。花束可以移動,並且每束花用1到f的整數標識。如果i j,則花束i必須放在花束j左邊的花瓶中。例如,假設杜鵑花的標識數為1,秋海棠的標識數為2,...

洛谷dp記錄

線性dp,分開處理資料 include using namespace std const int n 300010 int m,s,t,dp n dpt n 分開計算跑步還是等待 intmain 能閃現就閃現 else 不能閃現就都記錄下來 for int i 1 i t i cout no en...