- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
对于网址http://acm.timus.ru/problem.aspx?num=1017&locale=en提到的Staircase问题
我们能否在线性时间 O(k) 内解决它,其中 k 是可能的最大步数?我觉得使用以下方法缺少一些逻辑
有什么建议吗?
下面是我实现的代码:
def answer(n):
steps = determine_steps(n)
x = ((n -1) - n/steps) * ((n-2) - n/steps + 1) #Minimum of two stair case
for i in range(3, steps):
x = x * ((n-i)/i) #Stairs from 3 can go from minimum height 0 to max (n-i)/i
return x
def determine_steps(n):
"""Determine no of steps possible"""
steps = 1;
while (steps * steps + steps) <= 2 * n:
steps = steps + 1
return steps - 1
#print answer(212)
print answer(212)
最佳答案
假设,你有一个函数接受 2 个参数,一个 left
这是剩下的砖 block 数,另一个是curr
这是您所在台阶的当前高度。现在,在任何一步你都有 2 个选择。第一个选项是通过添加更多积木来增加当前台阶的高度,即 rec(left-1, curr+1)
第二个选项是创建一个高度应大于 curr
的新台阶,即 rec(left-curr-1, curr+1)
(您创建了一个高度为 curr+1
的台阶)。现在,left
永远不能为负,因此 if left<0 then return 0
.而当left
是 0 这意味着,我们已经创建了一个有效的楼梯,因此 if left==0 then return 1
.
本案例:if dp[left][curr] !=-1
只是为了内存。
现在,rec( 212-1, 1 )
表示创建了一个高度为 1 的步骤,它是当前步骤。最后的答案1
被减去是因为任何有效的楼梯都应该包含至少 2 个台阶,因此,单步楼梯减去 1。
# your code goes here
dp = [ [-1]*501 for i in range(501) ]
def rec(left, curr):
if left<0:
return 0
if left==0:
return 1
if dp[left][curr] !=-1:
return dp[left][curr]
dp[left][curr] = rec(left-1, curr+1) + rec( left-curr-1, curr+1)
return dp[left][curr]
print ( rec(212-1,1) - 1 )
如果您无法理解代码,请随时发表评论。
关于algorithm - 使用动态规划的可能楼梯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39754120/
我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 buildfile 的第一部分从我的 Eclipse 项目中获取内容并将其放入 /dist 文件夹中,然后将其
我是一名学习 SQL 和 PHP 的学生,我接到了一项任务,要使用 PHP 和 mySQLi 创建学生反馈表,我真的一直在思考如何为项目设计数据库! 我正在创建一个系统,用户可以在其中登录网页,如果用
这个问题在这里已经有了答案: Is it possbile to test for expected errors when the testee exits with failure using
我目前正在设计和开发一个 Web 应用程序,该应用程序有可能快速增长。我将提供一些一般信息,然后继续我的问题。我会说我是一名中级网络程序员。 以下是一些规范:MySQL - 数据库后端PHP - 用于
我不知何故无法在我的日志解析器应用程序中实现报告功能。 这是我目前所做的: 我正在编写一个应用程序,它读取日志文件并在字符串中搜索可以在用户配置文件中定义的多个正则表达式。对于从配置中解析的每个所谓的
我有兴趣学习如何在多开发团队场景中设计/规划 Web 应用程序开发。 假设“项目经理/负责人”的角色: 成功的 Web 应用程序开发需要哪些“文档”? 需要什么 UML 图,需要什么程度? 在设计/计
table a (t_a): id name last first email state country 0 sklass klass steve
我们建立了一个广泛使用 JQuery UI 的 AJAX 网站。我们有 30 多个自制的 JQuery UI 小部件(动态加载)。我们到处都使用 JQuery native 小部件:对话框、 slid
我是一名优秀的程序员,十分优秀!