奶牛的聲音 jzoj 1932

2021-08-15 03:25:11 字數 1228 閱讀 2805

題目描述

農夫約翰最近忘記他有多少奶牛了!於是他決定用乙個特別新穎的方法來計算奶牛的數量。他在每塊農田上都安裝乙個麥克風,通過麥克風的音量來計算每個農田上有多少奶牛。

約翰的n個農田是排成一條直線,每個農田上可能擁有不同種類的奶牛,奶牛的種類是b種,第i種奶牛每只奶牛都會發出vi的音量。然後,由於農場裡是經常有風的,風的方向是從左到右的,風使得奶牛的聲音也從左到右吹了過去。如果聲音在某塊農田的音量是x,那麼接下來風將把x-1音量的聲音帶到下乙個(右邊)那個農田上去。因此每塊農田上的音量等於本身這塊農田上奶牛發出的聲音加上左邊相鄰的農田音量x-1。

給定從左到右每塊農田上的音量,請幫助約翰計算他最少有多少數量的奶牛。

輸入

第一行兩個正整數n和b。

第2行到第b+1行,第i+1行的整數表示vi。

第b+2行到第b+i+1行,表示從左到右每塊農田上的監測到的音量。

輸出

輸出最少可能有多少奶牛,如果不能確定的話,就輸出-1。
樣例輸入

5 2

5 7

0 17

16 20

19樣例輸出

資料範圍限制

【樣例說明】

第一塊農田上音量為0,所以奶牛數量也為0,第二塊農田上音量為17,由於左邊沒有聲音傳過來,所以17的音量全部是第二塊農田上奶牛產生的,第二塊農田上最少有2只第1種類的奶牛和1只第2種類的奶牛,接下來第三塊農田上的音量是16,全部由左邊傳過來,所以第三塊農田沒有奶牛,第四塊農田上音量是20,其中15是由第三塊農田上傳過來的,5是自己產生的,5的音量最少有1只第一種類的奶牛,所以最少總共有4只奶牛。

【資料規模】

1<=n<=100,1<=b<=20,1<=vi<=100,每塊農田上監測的音量不超過100000。

題解:先預處理出音量i最少需要幾頭牛,然後算出每個農田的實際音量,之後再累加。

**:

var n,b,i,j,maxn,sum:longint;

v,a,t,f:array[0..100000] of longint;

function max(a,b:longint):longint;

begin

if a>b then exit(a)

else exit(b);

end;

function min(a,b:longint):longint;

begin

if a

SSL ZYC 奶牛的聲音

題目大意 農夫約翰最近忘記他有多少奶牛了!於是他在每塊農田上都安裝乙個麥克風,通過麥克風的音量來計算每個農田上有多少奶牛。約翰的n個農田是排成一條直線,每個農田上可能擁有不同種類的奶牛,奶牛的種類是b種,第i種奶牛每只奶牛都會發出vi的音量。然後,由於農場裡是經常有風的,風的方向是從左到右的,風使得...

SSL ZYC 奶牛的聲音

題目大意 農夫約翰最近忘記他有多少奶牛了!於是他在每塊農田上都安裝乙個麥克風,通過麥克風的音量來計算每個農田上有多少奶牛。約翰的n個農田是排成一條直線,每個農田上可能擁有不同種類的奶牛,奶牛的種類是b種,第i種奶牛每只奶牛都會發出vi的音量。然後,由於農場裡是經常有風的,風的方向是從左到右的,風使得...

JZOJ 奶牛的歌聲 模擬

farmer john的n頭奶牛喜歡站成一排一起唱歌。每頭奶牛都有自己獨特的身高h,唱歌時的音量為v。每頭奶牛的歌聲都會從牠所在的位置出發,向佇列的兩邊傳播。並且有乙個奇特的事情 當某頭奶牛唱歌時,整個隊伍中,在左右兩個方向上,只有身高比牠高且與牠最接近的奶牛能聽見牠的歌聲 也就是說,任何一頭奶牛的...