zoukankan      html  css  js  c++  java
  • CF 483B Friends and Presents(二分)

    这里v是所选1到v这个序列的最大值,然后要求最小值,就要想到最大值最小化,就要用二分搜素

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define inf 0x3f3f3f3f
    int main()
    {
        ll cnt1,cnt2,x,y,xb,yb,xyb,low,up,mid,ans=inf;
        scanf("%lld %lld %lld %lld",&cnt1,&cnt2,&x,&y);
        low=0;
        up=1e15;
        while(low<=up)
        {
    
            mid=(low+up)>>1;
            //cout<<"******************************88"<<endl;
            //cout<<"mid:"<<mid<<"  low:"<<low<<"  up:"<<up<<endl;
            //cout<<"******************************88"<<endl;
            xb=mid/x;
            yb=mid/y;
            xyb=mid/(x*y);
            if((mid-xyb>=cnt1+cnt2)&&(mid-xb>=cnt1)&&(mid-yb>=cnt2))
            {
                ans=mid;
                up=mid-1;
            }
            else
                low=mid+1;
        }
    
        printf("%lld
    ",ans);
    
        return 0;
    
    
    }
  • 相关阅读:
    ASP.NET 2.0
    PHP
    SQL 查询逻辑处理顺序
    LEETCODE
    网络学习课程资源
    概率论
    集合论
    图论
    《组合数学》
    离散数学
  • 原文地址:https://www.cnblogs.com/eason9906/p/11754994.html
Copyright © 2011-2022 走看看