列表

详情


NC14691. 我都认识

描述

小明有个想法,假如世界上所有人都恰好认识K个人,并且每个人认识的人之间没有重复的,那么小明就间接认识了世界上所有的人!
小明又有一个想法,假如这个世界里某个人知道一条信息,他/她会传给所有他/她认识的人。
小明还有一个想法,每次信息传递都会有偏差,偏差的严重程度随信息传递的次数递增而递增。
假设小明传给他的朋友们一条信息,则偏差严重程度为1,小明的朋友们传给他们的朋友时,则偏差严重程度为2(因为传递了两次),以此类推。
小明最后想知道在这种条件下,他如果传递一条信息给N个人,偏差严重程度最大为多少?

输入描述

输入只有一行,两个整数N,K,代表传递的人数和每个人认识的人的个数。

数据保证:0<N≤106,0<K≤10

输出描述

输出一行,一个整数,表示最大偏差严重程度。

示例1

输入:

8 2

输出:

3

说明:

小明传给他的朋友(2<8),他的朋友传给他们的朋友(2+4=6<8),他们的朋友再传给他们的朋友(6+8=14>8),因此最大严重偏差程度为3。

示例2

输入:

8 3

输出:

2

说明:

小明传给他的朋友(3<8),他的朋友传给他们的朋友(3+9=12>8),因此最大严重偏差程度为2。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 384K, 提交时间: 2017-12-23 14:27:34

#include<stdio.h>
int main()
{int p=0,w=0,v;
long long h,c;
scanf("%lld %lld",&h,&c);
v=c;
while(p<h)
{p+=c;
c*=v;
w++;
}
printf("%d",w);
return 0;
}

Python3(3.9) 解法, 执行用时: 269ms, 内存消耗: 4600K, 提交时间: 2022-01-31 12:05:40

n,k=map(int ,input().split(' '))
ans=0
p=1
q=1
while n>=q:
    ans+=1
    p*=k
    q+=p
print(ans)

上一题