UVA1252 20个问题 Twenty Questions

题目描述

考虑一个封闭世界和一组为世界中所有物体定义的特征。每个特征可以用“是”或“否”表示。通过这些特征,我们可以将任何物体与世界中的其他物体区分开来。换句话说,每个物体可以表示为一个固定长度的 $0/1$ 序列。任何物体都至少在一个特征上与其他物体不同。 你想从其他物体中区分出某一个物体。为此,你可以向一个知道该物体是什么的人问若干问题。你问的每个问题都是关于一个特征的。他/她会立即正确回答每个问题,回答“是”或“否”。你可以在得到上一个问题的答案后选择下一个问题。 你每问一个问题,需要支付 $100$ 日元作为小费。因为你没有多余的钱,所以你需要最小化最坏情况下,你问的问题数量。你不知道正确答案是什么,但幸运的是,你了解世界中的所有物体。因此,你可以在开始提问前计划一个最优策略。 你需要解决的问题是:给定若干物体的 $0/1$ 特征定义序列,最小化最坏情况下的问题数量,使得每个物体都是可区分的。

输入格式

输入多组测试数据。每个测试数据以一行开始,该行包含两个整数 $m$ 和 $n$,分别表示特征数量和物体数量。$m$ 和 $n$ 满足 $0

输出格式

对于每组测试数据,最小化最坏情况下问题数量使得每个物体都是可区分的。输出这个最小值。

说明/提示

$0