FZU2168 防守阵地 I
来源:互联网 发布:php网页制作教程 编辑:程序博客网 时间:2024/05/08 14:08
Accept: 20 Submit: 29
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
5 32 1 3 1 4
Sample Output
17
#include<stdio.h> int ans[1000005],dp[1000005],a[1000005],n,m,max;int main(){ int k; while(scanf("%d%d",&n,&m)>0) { max=0; k=0; ans[0]=0; dp[0]=0; for(int i=1; i<=n;i++) { scanf("%d",&a[i]); if(i<=m) { ans[k]+=a[i]; dp[k]+=i*a[i]; max=dp[k]; } else { k++; ans[k]=ans[k-1]-a[i-m]+a[i]; dp[k]=dp[k-1]-ans[k-1]+a[i]*m; if(max<dp[k]) max=dp[k]; } } printf("%d\n",max); }}
0 0
- FZU2168 防守阵地 I
- FZU2168 防守阵地 I
- FZU2168:防守阵地 I
- FZU2169:防守阵地 I
- 防守阵地 I
- FZU_2168_防守阵地I
- 防守阵地 I
- FZU 2168 防守阵地 I
- 防守阵地 I 加强版
- FZU_Problem 2168 防守阵地 I
- FZU 2168 防守阵地 I
- 防守阵地 I FZU - 2168
- 福州大学 Problem 2168 防守阵地 I
- FZU Problem 2168 防守阵地 I
- FZU Problem 2168 防守阵地 I
- 2168 防守阵地 I(简单数学题)
- 防守阵地
- FZU 2168 防守阵地 I(公式推导)(经典)(中等)
- Mybatis-Spring实现原理
- 2014年4月27日周总结(1)
- ModelDriver
- Android开发实例 简单拨打电话
- POJ - 1733 Parity game (带权并查集)
- FZU2168 防守阵地 I
- 20、TCP与UDP的概念,相互的区别及优劣
- Codeforce Round #424E Colored Jenga
- 关于JAVA多线程同步
- ACCESS_ONCE()
- Hessian矩阵用于结构光细化
- 手机远程控制原理
- 编程算法基础-3.1自顶向下风格
- javascript基础学习-dom模型(七)