小朋友的數字

2021-08-29 12:19:56 字數 949 閱讀 5184

小朋友的數字

用動態規劃用fcur[i]表示以座標i為右端點的區間最大和

f[i]表示前i個元素中的區間最大和,也就是特徵值

轉移方程見**

然後求解過程也很簡單

但是注意,簡單加減會導致爆longlong,所以,如果確定f[1]不是最大值,那麼就在過程中,對求出的最大值進行取模,以防爆longlong。

**如下:

#include

#include

#include

#include

using namespace std;

const

int maxn=

1000005

;int n,p;

long

long num[maxn]

;long

long f[maxn]

,fcur[maxn]

;long

long

maxx

(long

long a,

long

long b)

intmain()

for(

int i=

2;i<=n;i++

) f[1]

=num[1]

;for

(int i=

2;i<=n;i++

)long

long cur=f[1]

*2;int flag=1;

for(

int i=

2;i<=n;i++

)else

return0;

} cur=

maxx

(cur,cur+f[i]);

if(flag&&cur>f[1]

)if(flag==0)

}return0;

}

模擬 小朋友的數字

5 997123 45 22157 1 1 1 1 1 1樣例1 樣例2 其實這道題就是一道模擬題,判斷是否為特徵值最優的,然後就可以得出最優的分數即可.include include include include define ll long long using namespace std l...

dp P1982 小朋友的數字

有趣的細節題目 有 n 個小朋友排成一列。每個小朋友手上都有乙個數字,這個數字可正可負。規定每個小朋友的特徵值等於排在他前面 包括他本人 的小朋友中連續若干個 最少有乙個 小朋友手上的數字之和的最大值。作為這些小朋友的老師,你需要給每個小朋友乙個分數,分數是這樣規定的 第乙個小朋友的分數是他的特徵值...

P1982 小朋友的數字

有 nn個小朋友排成一列。每個小朋友手上都有乙個數字,這個數字可正可負。規定每個小朋友的特徵值等於排在他前面 包括他本人 的小朋友中連續若干個 最少有乙個 小朋友手上的數字之和的最大值。作為這些小朋友的老師,你需要給每個小朋友乙個分數,分數是這樣規定的 第乙個小朋友的分數是他的特徵值,其它小朋友的分...