mns Day 8
A home
首先写出一个 BFS 暴力。
找了找规律,发现最大值在“选取所有和为 \(\lfloor \frac{3n}{2} \rfloor\) 的三元组“时取到。模拟即可。
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int n, ans;
int main() {
freopen("home.in", "r", stdin);
freopen("home.out", "w", stdout);
cin >> n;
for(int i = 0; i <= n; i++) {
for(int j = 0; j <= n; j++) {
for(int k = 0; k <= n; k++) {
if(i + j + k == n + n / 2) ans++;
}
}
}
cout << ans << '\n';
for(int i = 0; i <= n; i++) {
for(int j = 0; j <= n; j++) {
for(int k = 0; k <= n; k++) {
if(i + j + k == n + n / 2) cout << i << ' ' << j << ' ' << k << '\n';
}
}
}
return 0;
}
B connect
大粪。
首先发现是分数规划,光速二分,然后以为可以在两个“中间”截取。
然而:

这 SB 玩意可以平移过去导致答案不减,那就好办了,我们直接枚举每一个分界点,看看以这个分界点为右端点时答案可不可以取到 mid 即可。
啥?你说以分界点为左端点?直接反着再做一遍不就完了?

浙公网安备 33010602011771号