【发布时间】:2016-11-01 01:31:06
【问题描述】:
我正在阅读关于 Codefoces 上的一个问题的社论,但仍然无法理解它,因为它使用的是 PigeonHole 原理,我不知道如何在这个问题上应用鸽子原理
这是问题编辑:
在这个问题中,我们使用间隔数系统。这是一个非常重要的限制。让我们数一下手表显示屏上显示的位数,并称之为cnt。如果 cnt 大于 7,答案显然是 0(因为鸽巢原理)。如果 cnt 不大于 7,那么您可以暴力破解所有情况。
Here' 问题陈述 http://codeforces.com/contest/686/problem/C
袭击了 Gerda 出租车的劫匪非常成功地躲过了王国警察的掩护。为了更难抓住他们,他们使用自己的手表。
首先,因为他们知道王国警察不擅长数学,所以强盗使用以 7 为底的位置数字系统。其次,他们将一天划分为 n 小时,将每小时划分为 m 分钟。每个强盗的个人手表分为两部分:第一部分具有显示从 0 到 n - 1 的任何整数所需的尽可能少的位数,而第二部分具有显示所需的最少位数从 0 到 m - 1 的任何整数。最后,如果使用以 7 为底的位数少于此手表的位数,可以显示小时或分钟的某个值,则在符号的开头添加所需数量的零。
请注意,要显示手表的第 0 部分,必须至少有一个位置。
小强盗想知道时刻的数量(小时和分钟的特定值),以便手表上显示的所有数字都是不同的。帮助她计算这个数字。
【问题讨论】:
-
我们不是传统学习的替代品。我们不只是想为您从其他网站上调出一些代码。
-
这里鸽巢原理的要点就是简单地回答这种问题:“找到一个所有数字都不一样的8位数字”。这个任务显然是不可能的,因为只允许 7 个不同的数字(0,1,2,3,4,5,6)。