點我這是什麼,區間dp嗎?怎麼大佬都在說區間dp的樣子
完蛋區間dp都不知道是啥quq
於是使用了玄學的姿勢a過了這道題
設dp[i][j][0]表示第i天,左邊選了j個,當前選擇了左邊的最大價值方案,dp[i][j][1]表示從右邊選
(其實第三維好像不用,但我還是記錄了一下……這個思路和洛谷題解裡面有一篇差不多,那個就是沒記左右的,可以去看一下)
那麼很容易得到狀態轉移方程:
(其中a是題目所給陣列)
最後ans=max(f[n][i][0],f[n][i][1])(0<=i<=n)
注意第二維要從0開始列舉,因為有可能最開始就取右邊的
#includeusing namespace std;
inline int read()
while(isdigit(c))
return cnt*f;
}int n,a[2005];
int f[2005][2005][2];
int main()
int ans=-1;
for(register int i=1;i<=n;i++)
printf("%d",ans);
return 0;
}
區間DP 洛谷P2858牛奶零食
題目鏈結 題意 你有n個貨物從1 n依次排列,每天可以從兩側選乙個出來賣,賣的 是當天的天數乘該貨物的初始 問這批貨物賣完的最大 輸入 第一行n,之後是n個貨物的初始價值 這道題不能用貪心做,因為可能存在右端點非常大,但其左邊的數非常小,但因為右端點太大而沒被及時賣出 如 9 9 9 1 1 10 ...
P2858 USACO06FEB 奶牛零食
約翰經常給產奶量高的奶牛發特殊津貼,於是很快奶牛們擁有了大筆不知該怎麼花的錢 為此,約翰購置了n 1 n 2000 份美味的零食來賣給奶牛們 每天約翰售出乙份零食 當然約翰希望這些零食全部售出後能得到最大的收益 這些零食有以下這些有趣的特性 零食按照1 n編號,它們被排成一列放在乙個很長的盒子裡 盒...
USACO習題 奶牛零食
算是一道區間dp的水題,很容易設計出狀態dp i j 表示 i,j 所能產生的最大價值,那麼有dp i j max dp i 1 j v i n l 1 dp i j 1 v j n l 1 注意,這裡相當於將元素新增到序列中,因此最先加入的反而是 較晚的,同時,不難得出初始邊界,dp i i n ...