求求dalao指点 ac1个
查看原帖
求求dalao指点 ac1个
1366067
wei_learn_city楼主2024/7/18 16:51

爱与愁的心痛

题目背景

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

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

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

题目描述

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

输入格式

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

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

输出格式

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

样例 #1

样例输入 #1

8 3
1
4
7
3
1
2
4
3

样例输出 #1

6

提示

数据规模与约定

  • 对于 30%30\% 的数据,保证 n≤20n \leq 20。
  • 对于 60%60\% 的数据,保证 n≤100n \leq 100。
  • 对于 90%90\% 的数据,保证 n≤103n \leq 10^3。
  • 对于 100%100\% 的数据,保证 0≤m≤n≤3×1030 \leq m \leq n \leq 3 \times 10^3,$1 \leq a_i \leq 100

#include<bits/stdc++.h>

using namespace std;

int main()

{ int n,m;

cin>>n>>m;
int a[n+3],dp[n+3];
else{for(int i=0;i<n;i++)
{
    cin>>a[i];
}
for(int i=m-1;i<n;i++)
{
    dp[i]=a[i]+a[i-1]+a[i-2];
}
int minx=INT_MAX;
for(int i=m-1;i<n;i++)
{
    if(dp[i]<minx)
    {
        minx=dp[i];
    }
}
cout<<minx;}

}

2024/7/18 16:51
加载中...