国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

FZU 2168 防守陣地I (模擬 簡單規律)

2019-11-08 20:00:48
字體:
來源:轉載
供稿:網友

部隊中共有N個士兵,每個士兵有各自的能力指數Xi,在一次演練中,指揮部確定了M個需要防守的地點,按重要程度從低到高排序,依次以數字1到M標注每個地點的重要程度,指揮部將選擇M個士兵依次進入指定地點進行防守任務,能力指數為X的士兵防守重要程度為Y的地點將得到X*Y的參考指數。現在士兵們排成一排,請你選擇出連續的M個士兵依次參加防守,使得總的參考指數值最大。

Input

輸入包含多組數據。

輸入第一行有兩個整數N,M(1<=N<=1000000,1<=M<=1000),第二行N個整數表示每個士兵對應的能力指數Xi(1<=Xi<=1000)。

對于30%的數據1<=M<=N<=1000。

Output

輸出一個整數,為最大的參考指數總和。

Sample Input
5 32 1 3 1 4Sample Output
17注意讀題,是連續的士兵。找到規律,模擬士兵的選取過程,遍歷所有士兵,過程維護中最大值,時間復雜度為o(n)。規律:以樣例數據為例,第一組數據,2*1+1*2+3*3,第二組數據,1*1+3*2+1*3。可以看出第二組就是第一組減去,2 1 3三個數的和再加上第四個數乘以m。比較抽象,建議手動模擬幾組數據,這樣比較容易理解。模擬就是按照規律模擬的。詳細見代碼。AC代碼:
#include <iostream>#include <math.h>#include <algorithm>#include <string.h>#include <stdio.h>using namespace std;long long n,m,hum[1000005],sum,peo,i,tmax;int main(){    while(~scanf("%lld%lld",&n,&m))    {        for(i=1; i<=n; i++)        {            scanf("%lld",&hum[i]);        }        sum=0;peo=0;        for(i=1;i<=m;i++)        {            sum+=hum[i]*i;            peo+=hum[i];每次減去的m個人的能力指數的和        }        tmax=sum;        for(i=m+1;i<=n;i++)        {            sum=sum-peo+hum[i]*m;模擬的過程            peo=peo-hum[i-m]+hum[i];維護m個人的能力指數的和            tmax=max(sum,tmax);        }        PRintf("%lld/n",tmax);    }    return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喀喇沁旗| 婺源县| 个旧市| 屯留县| 柳江县| 丰城市| 广南县| 盐城市| 阿坝| 华蓥市| 尖扎县| 洞口县| 阿鲁科尔沁旗| 红安县| 商洛市| 中超| 赤城县| 济南市| 桐城市| 贵州省| 乌兰察布市| 德钦县| 尼玛县| 灵山县| 雅江县| 綦江县| 海南省| 施甸县| 仙桃市| 霸州市| 重庆市| 安福县| 贵德县| 迁安市| 颍上县| 项城市| 滁州市| 墨玉县| 旺苍县| 南部县| 睢宁县|