0分
有没有大佬能帮助我修改代码?Then I am going to tell u that what mind I think and what questions I have(接下来我会告诉你我遇到的问题和思路)
思路部分
这道题我使用的思想,类似但不同于题解区大牛们提出的
滑动窗口
大致是以下:
一个列表ct[m]和3个变量,变量1 ljt 存储列表中要被扔掉的那个变量,变量2 jsq 存储这个列表的和 ,变量3 smin 存储最小的 jsq;
然后输入数据,存储到ct[i%m]中(已经让ljt存储要扔掉的数据)
jsq把ljt的值扔掉,然后加上新的值
代码部分
#include<bits/stdc++.h>
using namespace std;
int smin=114514,m,n,jsq,ljt;
int main(){
cin>>n>>m;
int ct[m];
for(int i=0;i<n;i++){
if(ct[m-1]==0){
continue;
}
ljt=ct[i%m];
scanf("%d",&ct[i%m]);
jsq-=ljt;jsq+=ct[i%m];
smin=min(jsq,smin);
}
cout<<smin;
return 0;
}
小彩蛋:你猜ljt变量为什么叫ljt,提示:v.“扔掉”