做网站蓝色和什么颜色搭配好看,ui和前端哪个前景好,专业做网站app的公司有哪些,儿童教育机构网页设计素材Problem - 1623C - Codeforces
题意#xff1a; 思路#xff1a;
肯定是二分#xff0c;我们去二分最小值#xff0c;然后check的时候最小值要大于mid
check的时候要让最小值尽可能大
注意到我们不需要去管最大值#xff0c;只需要最小值尽可能大就好了#xff0c;因…Problem - 1623C - Codeforces
题意 思路
肯定是二分我们去二分最小值然后check的时候最小值要大于mid
check的时候要让最小值尽可能大
注意到我们不需要去管最大值只需要最小值尽可能大就好了因此倒着考虑直接把大数减到mid大小分给前面即可
注意在取d的时候要和原来的取min我因为没看清题意调了一会结果发现加了个min就过了
Code
#include bits/stdc.h#define int long longusing i64 long long;constexpr int N 2e5 10;
constexpr int mod 998244353;int n;
int a[N], b[N];bool check(int mid) {for (int i 1; i n; i ) {b[i] a[i];}for (int i n; i 3; i --) {if (b[i] mid) return false;int d std::min((b[i] - mid) / 3, a[i] / 3);if (d 0) {b[i] - 3 * d;b[i - 2] 2 * d;b[i - 1] d;}}return b[1] mid b[2] mid;
}
void solve() {std::cin n;for (int i 1; i n; i ) {std::cin a[i];}int l 0, r 1e9;int ans 0;while(l r) {int mid l r 1;if (check(mid)) {ans mid;l mid 1;}else {r mid - 1;}}std::cout ans \n;
}
signed main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t 1;std::cin t;while(t --) {solve();}return 0;
}