P1614 爱与愁的心痛

P1614 爱与愁的心痛

[P1614 爱与愁的心痛](https://www.luogu.com.cn/problem/P1614?contestId=150480
P1614 爱与愁的心痛

题意

最近有 n 个不爽的事,每句话都有一个正整数刺痛值(心理承受力极差)。想知道连续 m 个刺痛值的和的最小值是多少。
输出一行一个整数,表示连续 m 个刺痛值的和的最小值是多少。

思路

  1. 一定要用for循环。
  2. 一定要用数组。
  3. 赋值,交换。

坑点

  1. 第一个for循环里面,i的条件要想清楚。

算法一:双层for循环:

时间复杂度
  • 输出大小: 1.83200645446777 MiB
  • 编译时间: 0.77s
实现步骤
  1. 根据题意,要用long long int定义数与数组,输入。
  2. 自加
  3. 和赋给最小值,sum自加。
代码
#include
#include
using namespace std;
int main()
{
	long long int n,m;
	cin>>n>>m;
	long long int a[110000];
	int min=1e10,sum=0;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n-m+1;i++)
	{
		for(int j=1;j<=m;j++)
		{
			sum+=a[i+j-1];
		}
		if(sum<min)
		{
			min=sum;
		}
		sum=0;
	}
	cout<<min;
	return 0;
}

总结

难到没什么,就是脑子要转过弯来。

你可能感兴趣的:(c++)