FZU Problem 2168 防守陣地 I

2021-09-07 16:38:58 字數 697 閱讀 5688

題目大意:

給定n個數和m,要求從n個數中選擇連續的m個,使得a[i]*1+a[i+1]*2+……a[i+m]*m最大

思路:常規思路是以每乙個數開始。列舉m個,可是這樣會tle。

能夠有o(n)的演算法。

比如例子的

n=5 m=3

五個數分別為

2 1 3 1 4

有三種連續的三個數

2 * 1 + 1 * 2 + 3* 3 = 13

1 * 1 + 3 * 2 + 1 * 3= 10

3 * 1 + 1 * 2 + 4 * 3 = 17

設sum[i]為到i的m個數的和,dp[i]為以i結束的m個數的乘積值。

則相鄰兩組間有關係,dp[i] =dp[i-1]-sum[i-1] + m*a[i] ;

比如   第第二組的那個 dp[4 ]= dp[3]- sum[3] + 3 * 1 = 13-6+3*1=10

#includeconst int maxn=1000000+10;

int sum[maxn],dp[maxn],a[maxn];

int main()

int ans=dp[m];

for(int i=m+1;i<=n;i++)

printf("%d\n",ans);

} return 0;

}

(紀中)2168 朋友 friend

file io input friend.in output friend.out 時間限制 1000 ms 空間限制 262144 kb 具體限制 goto problemset 題目描述 經過六年的努力,小明終於被一所知名中學錄取。優秀的小明總是對一些奇奇怪怪的事情感興趣,這次他想知道誰在這所新...

FZU Problem 1015 土地劃分

在dukeswood這塊土地上生活著乙個富有的農莊主和他的幾個孩子。在他臨終時,他想把他的土地分給他的孩子。他有許多農場,每個農場都是一塊矩形土地。他在農場地圖上劃上一些直線將矩形分成若干塊。當他划直線時,他總是從矩形邊界上的某一點劃到另乙個矩形邊界上的點,這條線的結束點將成為下一條線的起始點。他劃...

FZU Problem 2027 單詞問題

給出乙個完整的句子,這個句子中不包含不可見字元或者空格,於是在這個句子中有許多不同的單詞。乙個單詞是指一串連續的最長的英文本母 大寫或小寫 例如 abc 中,abc 就是乙個單詞,而 ab bc 都不算單詞。輸入包含多組資料 輸入資料第一行是乙個句子,只包含可見字元 不包含空格 句子長度不超過 10...