题意:给定n,在1-n中的范围里何以询问任意两个数的大小,问查找最大和次大至少需要多少次询问。
思路:寻找最大需要n-1次,寻找次大需要不断二分区间,log2(n-1)的算法。
code:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
while (~scanf("%d",&n)){
printf("%d\n",n-1+(int)log2(n-1));
}
}