今天时间比较少,就不放题目了,blog就写少一点吧
T1
最简单的一次,题目要我们求长度为L \sim R的序列的方差最小,题目乱序输入,但显然连续的数方差最小,又可以推出当长度为L时方差最小,还可推到一个可以用O(n)的复杂度写出的代码,那么本题结(每个数的类型都要是double,不然答案就炸了,别问怎么知道的,问就是实践检验真理)
#define int long long
#define endl '\n'
using namespace std;
const int N = 1e5 + 10;
int n, l, r;
double a[N], b[N], c[N];
signed main() {
cin >> n >> l >> r;
for (int i = 1; i > a[i];
}
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; i++) {
b[i] = a[i] + b[i - 1];
c[i] = c[i - 1] + a[i] * a[i];
}
double ans = 1e12;
for (int i = 1; i <= n - l + 1; i++) {
ans = min(ans, (((b[i + l - 1] - b[i - 1]) * 1.0) * ((b[i + l - 1] - b[i - 1]) * 1.0 / l) * 1.0 + (c[i + l - 1] - c[i - 1]) * 1.0 - 2.0 * ((b[i + l - 1] - b[i - 1]) * 1.0 / l) * (b[i + l - 1] - b[i - 1])) / l * 1.0);
}
printf("%.3f", ans);
return 0;
}
T2
改完了,Blog来不及打了,跑路!
T3
不会
T4
不会