FZU_Problem 2168 防守阵地 I
Problem 2168 防守阵地 I
Accept: 128 Submit: 392
Time Limit: 3000 mSec Memory Limit : 32768 KB
Problem Description
部队中共同拥有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
Sample Output
#include<cstdio>
#include<algorithm>
using namespace std;
#define maxn 1000010
int a[maxn],b[maxn];
int main()
{
int n,m,i;
__int64 ans,x,temp;
while(scanf("%d%d",&n,&m)!=EOF)
{
ans=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[i]=b[i-1]+a[i]; //保存前i个数的和
if(i<=m) ans+=a[i]*i; //1-m个士兵的能力指数
}
x=ans;
for(i=m+1;i<=n;i++)
{
temp=x+(m+1)*a[i]; //多加一次a[i]
temp-=b[i]-b[i-m-1]; //由于b[i]包括了a[i],等于这多减了一次,所以上面多加一次
x=temp; //传递到下一阶段
ans=max(temp,ans); //不断更新取最大值
}
printf("%I64d\n",ans);
}
return 0;
}
FZU_Problem 2168 防守阵地 I的更多相关文章
- 福州大学 Problem 2168 防守阵地 I
http://acm.fzu.edu.cn/problem.php?pid=2168 最重要的是 dp[k]=dp[k-1]-ans[k-1]+x[i]*m; ans[k-1]是m个数求和. Pro ...
- FZU 2168 防守阵地 I(公式推导)(经典)(中等)
Problem 2168 防守阵地 I Accept: 377 Submit: 1280 Time Limit: 3000 mSec Memory Limit : 32768 KB Pr ...
- FZU 2168 防守阵地 I
Problem Description 部队中共有N个士兵,每个士兵有各自的能力指数Xi,在一次演练中,指挥部确定了M个需要防守的地点,按重要程度从低到高排序,依次以数字1到M标注每个地点的重要程度, ...
- FZU Problem 2168 防守阵地 I
http://acm.fzu.edu.cn/problem.php?pid=2168 题目大意: 给定n个数和m,要求从n个数中选择连续的m个,使得a[i]*1+a[i+1]*2+--a[i+m]*m ...
- FZU 2168 防守阵地 I(前n项和的前n项和)
这是一道很容易超时的题,我超了n次了,后来队友提示我才想到,bigsum ! ! ! !就是前n项和的前n项和 #include<iostream> #include<cstdio& ...
- FZU2168——防守阵地 I——————【找规律或前缀和】
防守阵地 I Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- fzu 2171 防守阵地 II
Problem 2171 防守阵地 II Accept: 31 Submit: 112Time Limit: 3000 mSec Memory Limit : 32768 KB Prob ...
- FZU2171:防守阵地 II(线段树)
Problem Description 部队中总共同拥有N个士兵,每一个士兵有各自的能力指数Xi.在一次演练中,指挥部确定了M个须要防守的地点,指挥部将选择M个士兵依次进入指定地点进行防守任务.获得 ...
- FZU Problem 2171 防守阵地 II (线段树区间更新模板题)
http://acm.fzu.edu.cn/problem.php?pid=2171 成段增减,区间求和.add累加更新的次数. #include <iostream> #include ...
随机推荐
- HDU-1042-N!(Java大法好 && HDU大数水题)
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Subm ...
- jQuery Mobile页面跳转切换的几种方式
jQuery Mobile在移动开发中越来越受到欢迎. 而他的各个版本号也在持续不断的更新中.相同的我也非常喜欢它,它加快了我们开发HTML5的速度. 同一时候又具备jQuery一样的操作方法. 学起 ...
- 公布项目到NPM
修己安人,内圣外王 近期,在开发Node项目过程中遇到了须要类jQuery深拷贝对象的问题.去Github找了半天,并没有符合的,于是,自己决定写一个(mixin.js),然后推送到NPM(查看Npm ...
- js 回调函数小例子
js 回调函数小例子 <script> //将函数作为另一个函数的参数 function test1(){ alert("我是test1"); } function t ...
- ASP.NET Core-组件-后台任务:Hangfire
ylbtech-ASP.NET Core-组件-后台任务:Hangfire Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在.net core的环境中,由Core自带的 ...
- python之--初始面向对象
阅读目录 楔子 面向过程vs面向对象 初识面向对象 类的相关知识 对象的相关知识 对象之间的交互 类命名空间与对象.实例的命名空间 类的组合用法 初识面向对象小结 面向对象的三大特性 继承 多态 封装 ...
- caffe study- AlexNet 之算法篇
在机器学习中,我们通常要考虑的一个问题是如何的“以偏概全”,也就是以有限的样本或者结构去尽可能的逼近全局的分布.这就要在样本以及结构模型上下一些工夫. 在一般的训练任务中,考虑的关键问题之一就是数据分 ...
- Spark RDD概念学习系列之transformation操作
不多说,直接上干货! transformation操作 惰性求值 (1)RDD 的转化操作都是惰性求值的.这意味着在被调用行动操作之前Spark不会开始计算. (2)读取数据到RDD的操作也是惰性的. ...
- js 判断设备的来源
function deviceType(){ var ua = navigator.userAgent; var agent = ["Android", "iPhone& ...
- 小数据量csv文件数据导入数据库(思路)
大致写写思路,因为sqlserver提供了可以直接导入的图形界面. 1.private static string GetConnectionString(string folderPath) // ...