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

洛谷 P1614 爱与愁的心痛 C(滑动窗口)

题目:


P1614 爱与愁的心痛 - 洛谷 | 计算机科学教育新生态

题目背景


(本道题目隐藏了两首歌名,找找看哪~~~)

《爱与愁的故事第一弹·heartache》第一章。

《我为歌狂》当中伍思凯神曲《舞月光》居然没赢给萨顶顶,爱与愁大神心痛啊~~~而且最近还有一些令人伤心的事情,都让人心痛(最近真的很烦哈)……

题目描述


最近有 n 个不爽的事,每句话都有一个正整数刺痛值(心理承受力极差)。爱与愁大神想知道连续 m 个刺痛值的和的最小值是多少,但是由于业务繁忙,爱与愁大神只好请你编个程序告诉他。

输入格式


第一行有两个用空格隔开的整数,分别代表 n 和 m。

第 2 到第 (n+1)行,每行一个整数,第 (i+1) 行的整数 ai​ 代表第 i 件事的刺痛值 ai​。

输出格式


输出一行一个整数,表示连续 m 个刺痛值的和的最小值是多少。

输入输出样例


输入 #1复制

8 3
1
4
7
3
1
2
4
3
输出 #1复制

6


说明/提示


数据规模与约定
对于 30% 的数据,保证 n≤20。
对于 60% 的数据,保证 n≤100。
对于 90% 的数据,保证 n≤103
对于 100% 的数据,保证 0≤m≤n≤3×1000,1≤ai≤100。


思路:

滑动窗口

代码如下:

#include <iostream>
#include <climits>

using namespace std;

int main() 
{
    int n, m;
    cin >> n >> m;

    int arr[40000]; // 静态数组
    int window_sum = 0;
    int min_sum = INT_MAX;
    
    // 读取输入
    for (int i = 0; i < n; ++i)
	 {
        cin >> arr[i];
    }
    
    // 初始化窗口和
    for (int i = 0; i < m; ++i) 
	{
        window_sum = window_sum + arr[i];
    }
    //更新当前窗口 
    min_sum = window_sum;
    
    // 滑动窗口
    for (int right = m; right < n; right++) 
	{
        window_sum = window_sum + arr[right] - arr[right - m]; // 移动窗口并更新和
        if (window_sum < min_sum) 
		{
            min_sum = window_sum;
        }
    }
    
    cout << min_sum << endl;
    
    return 0;
}


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

相关文章:

  • 【Rust自学】9.3. Result枚举与可恢复的错误 Pt.2:传播错误、?运算符与链式调用
  • php 静态变量
  • vue中的设计模式
  • Java的基础概念(二)
  • JavaScript基础 -- 变量、作用域与内存
  • 图文教程:使用PowerDesigner导出数据库表结构为Word/Html文档
  • Django serializers:把ValidationError处理的更优雅
  • 计算机网络与通信复习
  • Dockerfile 实战指南:解锁高效容器化开发
  • Android 旋转盘导航栏
  • 【UE5 C++课程系列笔记】15——Assert的基本使用
  • vue3<script setup>中使用Swiper
  • 第八节:GLM-4v-9b模型的大语言模型源码解读(ChatGLMForConditionalGeneration)
  • windows C#-带有命名方法的委托与匿名方法
  • 基于springboot的校园新闻网站系统
  • [创业之路-225]:《华为闭环战略管理》-4-华为的商业智慧:在价值链中探索取舍之道与企业边界
  • WAP短信格式解析及在Linux下用C语言实现
  • 【Spring MVC 核心机制】核心组件和工作流程解析
  • 【OTA】论文学习笔记--《基于RTOS的车载ECU双分区OTA升级技术分析报告》
  • 3.阿里云flinkselectdb-py作业
  • 什么是微服务、微服务如何实现Eureka,网关是什么,nacos是什么
  • PyTorch快速入门教程【小土堆】之Sequential使用和小实战
  • 【RK3588 Linux 5.x 内核编程】-内核IO复用与select
  • 防火墙基础-工作原理
  • 爱思唯尔word模板
  • UE(虚幻)学习(二) 使用UnrealSharp插件让UE支持C#脚本