当前位置: 首页 > article >正文

【数据结构】guard

部队中共有N个士兵,每个士兵有各自的能力指数Xi,在一次演练中,指挥部确定了M个需要防守的地点,按重要程度从低到高排序,依次以数字1到M标注每个地点的重要程度,指挥部将选择M个士兵依次进入指定地点进行防守,能力指数为X的士兵防守重要程度为Y的地点将得到X*Y的参考指数。选择出连续的M个士兵依次参加防守,使得总的参考指数值最大。

输入格式:输入第一行有两个整数N,M(1<=N<=1000000,1<=M<=1000);第二行N个整数表示每个士兵对应的能力指数Xi(1<=Xi<=1000)
输出格式:输出一个整数,为最大的参考指数总和。

输入示例:5 3 \n 2 1 3 1 4
输出示例:17(31+12+4*3=17)

在这里插入图片描述

在这里插入图片描述

#include <stdio.h>
#define N 1000005
int qzh[N],qzhdqzh[N]; //qzh前缀和,qzhdqzh前缀和的前缀和
int main(){
	qzh[0]=qzhdqzh[0]=0;
	int n,m;scanf("%d%d",&n,&m);
	int ability;
	for(int i=1;i<=n;i++){ //i=1,第一个士兵
		scanf("%d",&ability);
		qzh[i]=qzh[i-1]+ability; //计算前缀和
		qzhdqzh[i]=qzhdqzh[i-1]+qzh[i]; //计算前缀和的前缀和
	}
	int max,t=0;
	for(int i=m;i<=n;i++){ //i=m表示窗口为第一个到第m个士兵
		max=m*qzh[i]-(qzhdqzh[i-1]-qzhdqzh[i-1-m]); //计算每个窗口总参考指数
		if(max>t)t=max;
	}
	printf("%d",t);
	return 0;
}

http://www.kler.cn/a/375466.html

相关文章:

  • Linux 操作系统的诞生与发展历程
  • [每日一练]用unstack列转行的方法统计变量出现的次数
  • vue自定义组件实现v-model双向数据绑定
  • Golang | Leetcode Golang题解之第516题最长回文子序列
  • 论文翻译 | PROMPTAGATOR : FEW-SHOT DENSE RETRIEVAL FROM 8 EXAMPLES
  • Java面试经典 150 题.P55. 跳跃游戏(009)
  • PyMOL中常用的命令列表
  • 代理人工智能如何应对现代威胁的速度和数量
  • 重载与重写的区别
  • wireshark复制数据
  • 极简实现酷炫动效:Flutter隐式动画指南第二篇之一些酷炫的隐式动画效果
  • 高清解压视频素材从哪儿下载?推荐5个高清推文素材资源网站
  • Unity3D Shader实现法线贴图功能详解
  • 【论文阅读】FUNNELRAG:一个从粗到精的逐级检索范式
  • 静态水印+动态水印,开启超强PPT版权保护!
  • 基于Material Design风格开源、免费的WinForms UI控件库
  • DNF 主从服务器的搭建
  • 传输层协议之UDP
  • 调试EKF的MATLAB代码的关键点
  • 智能交通的未来:深度学习如何改变车辆检测游戏规则
  • 抓取和分析JSON数据:使用Python构建数据处理管道
  • 从一个双向链表中移除一个链表
  • 掌握AI Prompt的艺术:如何有效引导智能助手
  • Ubuntu 命令行教程介绍
  • 什么是制造项目管理?
  • shodan进阶-实战案例