题目描述
二分
样例
#include<iostream>
using namespace std;
typedef long long LL;
int n,m,x,y;
bool check(LL h)
{
LL a=h/y-h/x/y;
LL b=h/x-h/x/y;
LL c=h-h/x-h/y+h/x/y;
LL s1=max(0ll,n-a),s2=max(0ll,m-b);
return s1+s2<=c;
}
int main()
{
cin>>n>>m>>x>>y;
//二分查找
int l=1,r=2e9;
while(l<r)
{
LL mid=(LL)l+r>>1;
if(check(mid)) r=mid;
else l=mid+1;
}
cout<<l<<endl;
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla