4 条题解

  • 1
    @ 2024-5-1 10:29:20

    这有点像是前缀和啊,但却不在前缀和的分类中,不过还是一如既往的简单

    已AC,请放心食用

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        double n, m, a[105], avg = 0, maxx = 0;
        cin >> n >> m;
        for (int i = 1; i <= n; i++)
        {
            cin >> a[i];
        }
        for (int i = 1; i <= n - 2; i++)
        {
            avg = 0;
            for (int j = i; j <= i + 2; j++)
            {
                avg += a[j];
            }
            avg /= m;
            if (avg > maxx)
            {
                maxx = avg;
            }
        }
        cout << fixed << setprecision(2) << maxx;
        return 0;
    }
    
    • 0
      @ 2023-4-14 22:04:54

      01背包

      #include<bits/stdc++.h>
      using namespace std;
      int n,f[107],m,a[107];
      int main()
      {
          cin>>n>>m;
          for (int i=1;i<=n;i++)
              cin>>a[i];
          for (int i=1;i<=n;i++)
              for (int j=i;j<=m;j++)
                  f[j]=max(f[j],f[j-1]+a[i]);
          cout<<fixed<<setprecision(2)<<1.0*f[m]/m;
          return 0;
      }
      • 0
        @ 2023-1-29 13:22:40
        #include<bits/stdc++.h>
        using namespace std;
        /*
        求从每个数开始连续m个数的和,打擂台求最大,
        再求平均。 
        */
        int a[110]; 
        int main()
        {
        	int n, m;
        	cin >> n >> m;
        	for(int i = 1; i <= n; i++){
        		cin >> a[i];
        	}
        	//求从每个数开始连续m个数的和,
        	//最多循环到倒数第m个数才能保证有m个数
        	int s;
        	int ma = 0;//最大的和
        	for(int i = 1; i <= n-m+1; i++){
        		//求连续m个数的和
        		s = 0;
        		for(int j = i; j <= i+m-1; j++){
        			s += a[j];
        		} 
        		if(s > ma) ma = s;
        	}
        	cout << fixed << setprecision(2) << 1.0 * ma / m; 
        	return 0;
        }
        
        
        • 0
          @ 2023-1-9 11:30:55

          很简单

          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              int n,m,a[9999];
              double max=0,sum=0;;
              cin >> n >> m;
              for(int i=0;i<n;i++)
              {
                  cin >> a[i];
              }
              for(int i=0;i<=n-3;i++)
              {
                  for(int j=0;j<m;j++)
                  {
                      sum+=a[i+j];
                  }
                  if(sum/m>max)
                  {
                      max=sum/m;
                  }
                  sum=0;
              }
              cout << fixed << setprecision(2);
              cout << max;
          }
          
          • 1

          信息

          ID
          165
          时间
          1000ms
          内存
          64MiB
          难度
          1
          标签
          递交数
          69
          已通过
          55
          上传者