题解 P1614 【爱与愁的心痛】

简介: 题目链接 前缀和。#重点在一个小小的常数优化但是数据大了以后比楼下们跑的会快!!!楼下用前缀和的题解都是跑了两遍循环。而实际上一遍循环就可以呀。就是加一段这个 if(i>=m) if(low>(ans[i]-ans[i-m])) low=ans[i]-ans[i-m];   直接维护一个low值就好。

题目链接

前缀和。

#重点在一个小小的常数优化

但是数据大了以后比楼下们跑的会快!!!

楼下用前缀和的题解都是跑了两遍循环。

而实际上一遍循环就可以呀。

就是加一段这个

if(i>=m)
    if(low>(ans[i]-ans[i-m]))
        low=ans[i]-ans[i-m];

 


直接维护一个low值就好。每次输入都判一下就简单很多。

直接上完整代码。

#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;///头文件们不说
int n,m;
long long ans[3005];//用于储存前缀和的数组
int num[3005];//储存数据
long long low=0x3f3f3f3f;//要维护的对象。最小值
int main()
{
    cin>>n>>m;//输入
    for(int i=1;i<=n;i++)
    {
        cin>>num[i];//输入
        ans[i]=ans[i-1]+num[i];//计算前缀和
        if(i>=m)//好了亮点在这!!!不用再扫一遍。//就是可以截取以这个点为重终点的区间时
        {
            if(low>(ans[i]-ans[i-m]))//如果以前的最小值小于这一段的最小值。
            {
                low=ans[i]-ans[i-m];//更新
            }
        }
    }
    if(low==0x3f3f3f3f)//如果发现没有更新
    {
        printf("0");//那就是0;
        return 0;
    }
    printf("%lld",low);//直接输出
    return 0;//程序拜拜

 


不过用scanf还会快一点

相关文章
|
算法 C语言 C++
LeetCode 每日一题2347. 最好的扑克手牌
给你一个整数数组 ranks 和一个字符数组 suit 。你有 5 张扑克牌,第 i 张牌大小
92 0
|
算法 C++
【每日算法Day 77】LeetCode 第 181 场周赛题解
【每日算法Day 77】LeetCode 第 181 场周赛题解
103 0
|
算法 C++ Python
【每日算法Day 63】LeetCode 第 179 场周赛题解
起床打开 leetcode,准备看看今天搞点啥题目水一水的,突然发现周赛还剩 1 小时整。看了眼题目也都挺简单的,就把 4 道题都做掉了。
|
机器学习/深度学习 测试技术
AcWing - 寒假每日一题2023(DAY 16——DAY 20)
AcWing - 寒假每日一题2023(DAY 16——DAY 20)
|
存储 人工智能 BI
AcWing - 寒假每日一题2023(DAY 11——DAY 15)
AcWing - 寒假每日一题2023(DAY 11——DAY 15)
|
存储 人工智能 算法
AcWing - 寒假每日一题2023(DAY 6——DAY 10)
AcWing - 寒假每日一题2023(DAY 6——DAY 10)
|
人工智能 Java C++
AcWing - 寒假每日一题2023(DAY 1——DAY 5)
AcWing - 寒假每日一题2023(DAY 1——DAY 5)
|
机器学习/深度学习
【蓝桥杯集训·每日一题】AcWing 4496. 吃水果
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 求组合数
80 0
|
存储 人工智能
【蓝桥杯集训·每日一题】AcWing 1051. 最大的和
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 线性DP
106 0
|
存储 Go
新年快乐题解
新年快乐题解
108 0
新年快乐题解