CF1271E.Common Number
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
At first, let's define function f(x) as follows: $$ \begin{matrix} f(x) & = & \left\{ \begin{matrix} \frac{x}{2} & \mbox{if } x \text{ is even} \\ x - 1 & \mbox{otherwise } \end{matrix} \right. \end{matrix} $$
We can see that if we choose some value v and will apply function f to it, then apply f to f(v), and so on, we'll eventually get 1. Let's write down all values we get in this process in a list and denote this list as path(v). For example, path(1)=[1], path(15)=[15,14,7,6,3,2,1], path(32)=[32,16,8,4,2,1].
Let's write all lists path(x) for every x from 1 to n. The question is next: what is the maximum value y such that y is contained in at least k different lists path(x)?
Formally speaking, you need to find maximum y such that ∣x ∣ 1≤x≤n,y∈path(x)∣≥k.
首先,我们定义函数 f(x) 如下:
\begin{matrix} f(x) & = & \left\{ \begin{matrix} \frac{x}{2} & \mbox{若 } x \text{ 为偶数} \\ x - 1 & \mbox{否则} \end{matrix} \right. \end{matrix}我们可以发现,若任选一个值 v,反复对其应用函数 f(即计算 f(v),f(f(v)),…),最终总会得到 1。我们将此过程中产生的所有值按顺序写成一个列表,并记该列表为 path(v)。例如,path(1)=[1],path(15)=[15,14,7,6,3,2,1],path(32)=[32,16,8,4,2,1]。
现在,我们写出所有 x 从 1 到 n 对应的列表 path(x)。问题如下:求最大的值 y,使得 y 至少出现在 k 个不同的列表 path(x) 中。
形式化地说,你需要找出最大的 y,满足 ∣{x∣1≤x≤n,y∈path(x)}∣≥k。
输入格式
The first line contains two integers n and k (1≤k≤n≤1018).
第一行包含两个整数 n 和 k(1≤k≤n≤1018)。
输出格式
Print the only integer — the maximum value that is contained in at least k paths.
输出唯一的整数——至少包含在 k 条路径中的最大值。
输入输出样例
输入#1
11 3
输出#1
5
输入#2
11 6
输出#2
4
输入#3
20 20
输出#3
1
输入#4
14 5
输出#4
6
输入#5
1000000 100
输出#5
31248
说明/提示
In the first example, the answer is 5, since 5 occurs in path(5), path(10) and path(11).
In the second example, the answer is 4, since 4 occurs in path(4), path(5), path(8), path(9), path(10) and path(11).
In the third example n=k, so the answer is 1, since 1 is the only number occuring in all paths for integers from 1 to 20.
在第一个例子中,答案是 5,因为 5 出现在 path(5)、path(10) 和 path(11) 中。
在第二个例子中,答案是 4,因为 4 出现在 path(4)、path(5)、path(8)、path(9)、path(10) 和 path(11) 中。
在第三个例子中,n=k,因此答案是 1,因为 1 是唯一一个出现在从 1 到 20 的所有整数对应的路径中的数。
输入解题思路,AI测评打分。不知道怎么写?