#include <bits/stdc++.h>#define N 5005#define ll long long#define mem(a, b) memset(a, b, sizeof(a))usingnamespacestd;
int main() {// freopen("in.txt", "r", stdin);int a, b, x;string t, ans;scanf("%d%d%d", &a, &b, &x);// 構造滿足X的“01”串if (a > b) t = "01";else t = "10";++x;int sum = x / 2;for (int i = 0; i < sum; ++i) {ans += t;}a -= sum;b -= sum;if (x % 2) {if (t == "01") ans += "0", --a;else ans += "1", --b;}// 將剩下的“0” “1” 加上int len = ans.size();int l = ans.find('0');if (a) ans.insert(l, a, '0');int r = ans.find("1");if (b) ans.insert(r, b, '1');cout << ans << endl;
}
C. Intense Heat
題意
給N個整數,求最大的連續數的平均數,連續數大于等于K
AC
暴力
#include <bits/stdc++.h>#define N 5005#define ll long long#define mem(a, b) memset(a, b, sizeof(a))usingnamespacestd;
int main() {// freopen("in.txt", "r", stdin);int n, k;scanf("%d%d", &n, &k);vector<int> v(n + 1);vector<int> sum(n + 1);for (int i = 1; i <= n; ++i) {scanf("%d", &v[i]);sum[i] = sum[i - 1] + v[i];}double ans = 0;for (int i = k; i <= n; ++i) {for (int j = i; j <= n; ++j) {double t = (sum[j] - sum[i - k]) * 1.0 / (j - i + k);if (t - ans > 1e-6) ans = t;}}printf("%.15lf\n", ans);
}