北華大學第五屆程式設計競賽春季聯賽 D題

2021-10-06 22:17:24 字數 1240 閱讀 5888

d-最大的收益

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

題目描述

一天,上課的時候小l老師帶來一些食物,要把它分給同學們品嚐,於是這些食物被分成了n堆。每一堆都給它標註了乙個價值。

小l老師就問同學們如何選擇品嚐的順序使得品嚐的價值之和最大。聰明的你立馬就想到了把所有的食物品嚐一遍價值和就是最大。

這時小l老師立馬加了乙個規矩不能品嚐相鄰的兩種食物,例如食物a b c依次擺放著桌子上,當你品嚐了食物a 你就不能品嚐食物b。

下乙個品嚐的食物只能是c。當你品嚐了食物b,你就不能品嚐食物c,同時也不能品嚐食物a。聰明的你知道如何選擇使得你從左到

右選擇品嚐的食物的價值最大嘛!最大的價值是多少。

輸入描述:

第一行乙個整數t(1≤t≤500),表示共有t組測試資料。

對於每組資料,第一次乙個數字n(1≤n≤1000)表示有n堆食物接下來一行有n個數,分別表示每堆食物的價值ai (0≤ai≤100).

輸出描述:

輸出乙個整數代表所能獲得的最大價值

示例1

輸入24

1 2 3 4

32 3 0

輸出6

3說明

樣例一 選擇品嚐第二個和第四個食物獲得的價值總和最大為6

思路:dp,在第i個位置有倆種選擇,取,不取,取的話,那第i-1個就不能取 ,因此總價值就是dp[i-2] + a[i],不取的話,總價值就是dp[i-1]

以下是ac**:

#include

#include

using

namespace std;

int a[

1010];

int dp[

1010];

intmain()

dp[0]

=0; dp[1]

= a[1]

;for

(int i =

2; i <= n; i++

) cout<<}return0;

}

台州學院第五屆大學生程式設計競賽

扔硬幣 solve the equation mfa algorithm circle vs 電腦密碼 the key locker of cell phone number maze 修路問題 浪漫自習 最大流ek 可以過 取乙個源點0 建一條邊 0 1 容量為m 情侶的對數 如果最大流等於m 就...

第五屆ACM趣味程式設計大賽

a 苗童大作戰之絕地求生 苗苗最近入坑絕地求生了,這一次她終於苟到了決賽圈,她已經把藥都用完了,但馬上又要跑毒了。假設她距離安全區最近的直線距離為 n 公尺,她的移動速度為 2 公尺每秒,她想知道如果按照這個方式跑到安全區最需要多少秒。輸入包含乙個整數 n 0 n 10000 代表她到安全區的距離。...

武漢大學第五屆E鳴杯程式設計大賽 部分解題報告。

1000 極度坑爹啊,誰都沒想到會是普通的加法。大整數肯定能過。呵呵a b 1001 題目也說了從大到小輸出可是一排序就不對,最後聽他們誰沒排序就a了,我就把排序刪了,可是老是pe,最後還要處理n 0是就沒有人拿了輸出換行 陷阱啊。貢獻了9wa 1003 這道題應該不是簡單題了。將每個點存起來,起點...