好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

CodeforcesRound#256(Div.2)A/B/C/D_html/css_WEB-ITn

A. Rewards

算法:二分查找。

由于最大的数为n*m=25*10^10,想到二分。第k大的数就是说有k个小于等于他的数(这种说法也不准确),

反正就是第一个找到的这样的最小的数。

充分利用乘法表的特点,每一行都是行数乘以1-m。所以找比小于等于x的数就是min(m,x/i)。


P.S 。。。反正我是没想到这个解法啦。。。o(?□?)o。。。学习了。。。


#include #include #include #include using namespace std;typedef long long ll;ll k,n,m;ll min(ll x,ll y){    return x >1;            if(check(mid)>=k)            {                ans = mid;                r = mid-1;            }            else l = mid+1;        }        printf("%I64d\n",ans);    }    return 0;} 

查看更多关于CodeforcesRound#256(Div.2)A/B/C/D_html/css_WEB-ITn的详细内容...

  阅读:37次