題目描述
小b喜歡美食。輸入描述:現在有n個美食排成一排擺在小b的面前,依次編號為1…n,編號為i的食物大小為 a[i] ,即足夠小b吃 a[i] 口。
小b每次會吃兩口,這兩口要麼是編號相同的美食,要麼是編號之差的絕對值為1的美食。
小b想知道,她最多能吃幾次?
第1行乙個正整數n,表示美食個數輸出描述:接下來n行,第i行乙個整數a[i],表示編號為i的美食的大小
乙個數表示小b最多吃幾次。示例1
輸入41輸出 說明578
用二元組(a,b)表示某一次吃的兩個美食分別為第a個美食和第b個美食,則下面為乙個吃10次的方案:(1,2)(2,2)(2,2)(3,4)(3,4)(3,4)(3,4)(3,4)(3,4)(3,4)
注意不一定要吃完。
備註:
1 ≤ n ≤ 105 , 0 ≤ a[i] ≤ 109
分析:貪心思維,從1~n遍歷,能吃則吃。
對於 a[i],先 ans+= a[i] / 2 ;
若 a[i] 為奇數,說明會剩下1,那麼如果 a[i+1] > 0,則令a[i+1] - =1,ans+=1 。
以下**:
#include
#define ll long long
using
namespace std;
const
int maxn=
1e5+10;
intmain()
}printf
("%lld"
,ans)
;return0;
}
牛客 組隊競賽
題目解析 此題題意,這是乙個求最優解的問題,三人一對,由首行n輸入的值來確定隊伍數目,我們為保證所有隊伍的水平值總和為最大值,則需讓隊伍中第二大的值盡量大。所以將最大值放到最右邊,最小是放左邊.解題思路 1.本題的主要思路是貪心演算法,就是每次選值時都選當前能看到的區域性最優解,所以這裡的貪心就是保...
牛客競賽Anagram
一 題目 二 題意 給定兩個長度一樣的字串 均為大寫字母 計算將a變為和b一樣的構成最少需要多少步。三 思路 將a和b分別按字母順序排序,由於可能存在輪迴向前找的情況,為了避免繞大圈,所以直接將a的當前字母和b的尾巴上未匹配的字母進行操作。四 include include include intc...
牛客寒假集訓6 美食
題目鏈結 貪心從i等於0開始遍歷,不管i等於0時的值是奇數還是偶數,除以2,把能吃的吃完,如果是奇數,會剩下一口,i等於1的值大於1,則這剩下的一口和i等於1裡的一口湊成兩口,則吃的總次數加一,i等於1的值減1,一直遍歷到最後乙個 注意如果是n個美食,要開乙個n 1的陣列並初始化為0,因為,如果只開...