算法问题实战策略 FESTIVAL 摇滚音乐节

地址 https://algospot.com/judge/problem/read/FESTIVAL

暴力优化即可.
尝试从l开始到N的各种长度。再暴力遍历各种长度下不同起点的连续天数的租金的平均值。
使用前缀和进行暴力的优化,不必每次都重复计算连续天数的租金总和。


#include <iostream>
#include <cstring>
using namespace std;


const double eps = 1e-8;
const int N = 1010;

int arr[N];
int preSum[N];

int t, n, l;


int main()
{
	cin >> t;
	while (t--) {
		cin >> n >> l;
		memset(preSum, 0, sizeof preSum);
		for (int i = 1; i <= n; i++) {
			int t; cin >> t;
			preSum[i] = t + preSum[i - 1];
		}
		//double ans = preSum[n] / n;???
		double ans = 100.0;
		for (int len = l; len <= n; len++) {
			for (int l = 1; l + len - 1 <= n; l++) {
				int r = l + len - 1;
				int sum = preSum[r] - preSum[l - 1];
				double avg = double(sum)*1.0 / len;
				if (avg < ans) { ans = avg; }
			}
		}

		printf("%.11f\n", ans);
	}


	return 0;
}

我的视频题解空间

posted on 2022-03-05 20:48  itdef  阅读(43)  评论(0编辑  收藏  举报

导航