1 条题解
-
0
思路
m副牌的缺口总和必须同时不超过特殊牌b和副数m,每副最多1张特殊牌,百万种牌计数避免32位总和溢出。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int n;long long b;cin>>n>>b;vector<long long>a(n);for(auto &x:a)cin>>x;long long lo=0,hi=*min_element(a.begin(),a.end())+b;auto ok=[&](long long m){long long need=0;for(long long x:a){need+=max(0LL,m-x);if(need>b||need>m)return false;}return true;};while(lo<hi){long long mid=(lo+hi+1)/2;if(ok(mid))lo=mid;else hi=mid-1;}cout<<lo<<'\n';}
- 1