C

题目链接:https://vjudge.net/contest/168648#problem/C

题意:一堆人用2的倍数搭建房子,一堆人用3的倍数搭建房子,要求不能重复,求最小的最高的房子的高度

题解:二分+思维。2和3的最小公倍数为6,那就在题目的最大范围能搜索n(能被2,3整除且无重复)---详见函数

code:

#include <stdio.h>

int n,m;

int check(int a)
{
 if((a/2<n) || (a/3<m) || (a/2+a/3-a/6<m+n))
 return 0;
 return 1;
}

int main()
{
 int l=0,r=10000000,mid;
 while(scanf("%d%d",&n,&m)!=EOF)
 {
  l=0; r=10000000;
  while(l+1<r)
  {
   mid=(l+r)/2;
   if(check(mid))
   {
    r=mid;
   }
   else
   {
    l=mid;
   }
  }
  printf("%d ",r);
 }
 return 0;
}

原文地址:https://www.cnblogs.com/DemonZiv/p/7105350.html