算法问题实战策略 FESTIVAL 摇滚音乐节
地址 https://algospot.com/judge/problem/read/FESTIVAL
暴力优化即可.
尝试从l开始到N的各种长度。再暴力遍历各种长度下不同起点的连续天数的租金的平均值。
使用前缀和进行暴力的优化,不必每次都重复计算连续天数的租金总和。
#include
#include
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;
}
我的视频题解空间