小朋友的數字(NOIP2013 普及組第三題)

2022-07-27 05:45:16 字數 845 閱讀 5506

有 n 個小朋友排成一列。每個小朋友手上都有乙個數字,這個數字可正可負。規定每個小朋友的特徵值等於排在他前面(包括他本人)的小朋友中連續若干個(最少有乙個)小朋友手上的數字之和的最大值。

作為這些小朋友的老師,你需要給每個小朋友乙個分數,分數是這樣規定的:第乙個小朋友的分數是他的特徵值,其它小朋友的分數為排在他前面的所有小朋友中(不包括他本人),小朋友分數加上其特徵值的最大值。

請計算所有小朋友分數的最大值,輸出時保持最大值的符號,將其絕對值對 p 取模後輸出。

第一行包含兩個正整數 n、p,之間用乙個空格隔開。

第二行包含 n 個數,每兩個整數之間用乙個空格隔開,表示每個小朋友手上的數字。

輸出只有一行,包含乙個整數,表示最大分數對 p 取模的結果。

5 997

1 2 3 4 5

21
5 7

-1 -1 -1 -1 -1

-1
每個測試點1s。

樣例1說明:

小朋友的特徵值分別為 1、3、6、10、15,分數分別為 1、2、5、11、21,最大值 21 對 997 的模是 21。

樣例2說明:

小朋友的特徵值分別為-1、-1、-1、-1、-1,分數分別為-1、-2、-2、-2、-2,最大值 -1 對 7 的模為-1,輸出-1。

對於 50%的資料,1 ≤ n ≤ 1,000,1 ≤ p ≤ 1,000所有數字的絕對值不超過 1000;

對於 100%的資料, 1 ≤ n ≤ 1,000,000, 1 ≤ p ≤ 10 ^ 9 ,其他數字的絕對值均不超過 10 ^ 9 。

noip2013 小朋友的數字(dp 規律)

我是超連結 無dp暴力 60pts 不行啊這個n 2,我還是用dp吧,f i 表示前i個手上的數 必選i 的最大值 80pts emmm看來是爆longlong了。確實有乙個比longlong更大的,但是我們還是用科學的方法吧 很容易發現特徵值是不降的,那麼也可以發現分數是不降的 如果上一位的特徵值...

2013NOIP普級組 小朋友的數字

很顯然,這是乙個最大欄位和問題,但是要注意的是在算每個小朋友的分數的時候是會爆longlong的,我們注意到小朋友的特徵值和分數是遞增的,手動進行模擬特徵值和分數可以得出 如果要求的小朋友的分數的上乙個小朋友的特徵值是大於等於零的,那麼往後的時候每乙個小朋友的分數都為他上乙個小朋友的分數加上特徵值。...

小朋友的數字

小朋友的數字 用動態規劃用fcur i 表示以座標i為右端點的區間最大和 f i 表示前i個元素中的區間最大和,也就是特徵值 轉移方程見 然後求解過程也很簡單 但是注意,簡單加減會導致爆longlong,所以,如果確定f 1 不是最大值,那麼就在過程中,對求出的最大值進行取模,以防爆longlong...