6 条题解

  • 2
    @ 2024-10-3 11:05:43

    *#include <stdio.h> int main() { int n, m; scanf("%d %d", &n, &m); int arr[n]; for (int i = 0; i < n; i++){ scanf("%d", &arr[i]); } int sum = 0; for (int i = 0; i < m; i++){ sum += arr[i] } int minSum = sum; for (int i = m; i < n; i++) { sum = sum - arr[i - m] + arr[i]; // 更新 sum,减去窗口最前面的事件刺痛值,加上新进入窗口的事件刺痛值(唯一注意点) if (sum < minSum) { minSum = sum; } } printf("%d\n", minSum); return 0; }

    • 1
      @ 2024-10-12 23:06:28

      看个乐吧😄 #include <stdio.h>

      int main ()

      {

      int n,m;

      scanf("%d %d",&n,&m);

      int a[n];

      int b=n-m+1;

      int c[b];

      c[0]=0;

      for(int i=0;i<n;i++){

      scanf("%d",&a[i]);

      }

      for(int j=0;j<m;j++){ c[0]+=a[j]; } for(int l=1;l<b;l++){ c[l]=c[l-1]-a[l-1]+a[l+m-1]; } int min=c[0];

      for(int l=1;l<b-1;l++){

      if(c[l]<min){

      min=c[l];

      }

      }

      printf("%d\n",min); return 0;

      }

      • 1
        @ 2024-10-12 19:54:29
        #include<stdio.h>
        int main(){
            int n,m,min=0;
            int a[3000];
            scanf("%d %d",&n,&m);
            for(int i=0;i<n;i++){
                scanf("%d",&a[i]);
            }
            int sum;
            for(int i=0;i<n-m+1;i++){
                sum=0;
                for(int j=0;j<m;j++){
                    sum=sum+a[i+j];
                }
                if(min==0){
                    min=sum;
                }
                 if(min>sum){
                    min=sum;
                }
            }
        printf("%d",min);
        }
        
        • 0
          @ 2026-4-19 16:35:11

          #include <bits/stdc++.h> using namespace std;

          int main() { int n, m; cin >> n >> m; int a[3000]; for (int i = 0; i < n; i++) { cin >> a[i]; }

          // 存储所有长度为 m 的连续子数组的和
          vector<int> sums;
          
          // 枚举每个起点 i,只要 i+m <= n
          for (int i = 0; i <= n - m; i++) {
              int sum = 0;
              for (int j = i; j < i + m; j++) {
                  sum += a[j];
              }
              sums.push_back(sum);
          }
          
          // 找最小值
          sort(sums.begin(), sums.end());
          cout << sums[0] << endl;  // 或者直接用 *min_element(sums.begin(), sums.end())
          
          return 0;
          

          }

          • 0
            @ 2025-7-4 11:27:31

            #include <stdio.h>

            int main() { int n = 0; int m = 0; int c = 1000; int b = 0; int a[3000];

            printf("请输入刺痛值的个数和连续值:"); scanf_s("%d %d", &n, &m); printf("请输入刺痛值数据:"); for (int i = 0; i < n; i++) { scanf_s("%d", &a[i]); } for (int i = 0; i < n - 2; i++) { for (int j = 0; j < m; j++) { b = b + a[i + j]; } if (c > b) { c = b; } b = 0; } printf("最小值:%d", c); return 0;

            }

            • 0
              @ 2025-1-5 12:50:39
              #include<stdio.h>	
              #include<iostream>	
              #include<algorithm>
              const int N=100000;
              int sum[N];
              int f[N];
              using namespace std;	
              int main()
              {
              	int n,m,q=0,min1=300000;	
              	cin>>n>>m;
              	for(int i=1;i<=n;i++)
              	{
              		cin>>f[i];
              	}
              	for(int j=1;j<=n-m+1;j++)
              	{
              		int m1=m;
              		q=j;
              		while(m1--)
              		{
              			sum[j]+=f[q++];
              		
              		}
              	}
              	for(int j=1;j<=n-m+1;j++)
              	{
              		min1=min(min1,sum[j]);
              	}
              	cout<<min1;
              	return 0;
              }	
              经过本人这么长时间的做题,发现我老是错在想当然,什么意思呐,我以为for循环中的m给它赋值完之后它不会变,所以大胆的在下面进行了m--,但m是变量,它的值是会改变的。😄 
              
              • 1

              信息

              ID
              102
              时间
              1000ms
              内存
              256MiB
              难度
              7
              标签
              (无)
              递交数
              1055
              已通过
              235
              上传者