总算是过了动态规划这一关了

自从开始学算法,动态规划就一直是我心中的一道阴影。也怪了,这个算法的原理我看明白了,可总是写不出程序来。具体地说,是0/1背包问题

让我感到头痛。

这次又碰到了0/1背包问题,想自己摸索出算法来,结果想了两天,也没想出来(看来当时对原理理解的还是不深)。因为在我的思考过程中,上界总是作为一个具体的值出现的,脑子根本就没往函数、区间的表示方式那个方向转。如果这个上界是具体的数值,那么每个子问题都是独一无二的,就不存在最优子结构了,也就找不到使用动态规划的方法。如果将上界设为一个未知数,用函数来表示,而函数的取值空间是一样的,都是整个实数域。这样,就很容易发现最有子结构了,并且问题的重叠部分也显示出来了。“动一子而满盘皆活”,变上界值为变量,在函数的级别上复用,太妙了!

"Python超级玛丽"通常是指用Python语言编写的一个游戏程序,它并不是官方版本的Super Mario游戏,而是一个基于经典游戏玩法的简化示例或者教育项目。由于这不是一个完整的、可用的代码片段,我无法直接提供完整的一关代码。但是,如果你想了解如何用Python基础来模拟简单的游戏控制,你可以尝试使用`pygame`库,这是一个常用于游戏开发的Python模块。 下面是一个非常简化的例子,演示如何创建一个基本的角色移动,这并不包含整个关卡: ```python import pygame # 初始化pygame pygame.init() # 定义角色变量 player_pos = [0, 0] # 玛丽的位置 # 游戏主循环 running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False keys = pygame.key.get_pressed() # 检查按键 if keys[pygame.K_LEFT]: player_pos[0] -= 5 # 向左移动 if keys[pygame.K_RIGHT]: player_pos[0] += 5 # 向右移动 if keys[pygame.K_UP]: player_pos[1] -= 5 # 向上移动 if keys[pygame.K_DOWN]: player_pos[1] += 5 # 向下移动 # 绘制角色 screen.fill((0, 0, 0)) # 渲染黑色背景 pygame.draw.rect(screen, (255, 255, 255), pygame.Rect(player_pos, (32, 32))) # 画出白色方块代表角色 # 更新屏幕 pygame.display.flip() # 游戏结束 pygame.quit() ``` 这个代码只是一个基本框架,实际的"超级玛丽"游戏会更复杂,包括地图管理、碰撞检测、敌人移动等。如果你对这个主题感兴趣,建议查阅相关的教程或学习资源来深入理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值