题意:有n支蜡烛,要插成r圈,第i圈的数量为k^i个,中间可插可不插,求出r*k的最小值,相同时去r最小。
思路:当时加这个比赛时我们已经把思路想出来了,没看到中间可以不插蜡烛。最多不超过四十圈,所以枚举圈数,然后二分找k,因为是一圈的时候一定是1,n-1,所以从2开始枚举。k有个上限就是1000000。
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
typedef long long LL;
LL find(int x,LL N)
{
LL L,R,mid,bt,sum;
L=2;R=1000000;
while(L<=R)
{
mid=(L+R......
阅读全文