uva 1291 - Dance Dance Revolution ( dp )
本文出自 http://blog.csdn.net/shuangde800
题目:点击打开链接
题目大意
如上图,这是一个跳舞机,初始状态两个脚都在0, 状态表示为(0, 0), 然后跳舞机会给你一系列舞步方向,例如2,3,4,2,3.......
每次你必须选择一只脚移动到对应数字方向的各格子上。
例如从初始状态(0,0),要移到1, 可以选择左脚或者右脚移上去,对应的状态为(1, 0), (0,1)
有一个限制,除了初始状态可以是(0, 0),之后的两只脚就不能再同时在一个格子上!
移动脚要耗费体力, 从0移动到其它各自都是耗费2, 从1,2,3,4之间,如果是移动到相邻的格子,比如1->2, 1->4, 3->2, 4->3,耗费体力3
如果是移动到对面的格子,比如1->3, 2->4,耗费体力4。
如果某一步,停止不动,耗费体力1
给一串方向,问最少用多少体力可以完成这些动作?
思路
f(i, j, k), 表示第i步,状态为(j,k)时花费的最少体力
那么不难推出转移方程式:
假设当前这个舞步是在s,那么符合这一步的所有状态有:
f(i, 0..4, s), f(i, s, 0...4)
然后可以根据上面的状态推出下一舞步的最少体力话费
假设下一舞步是next
那么
如果f(i, j, s), (0<=j<=4)状态可达
则可推出下一个的状态
f(i+1, j, s) = f(i, j, k) + 1; // 停在当前不动
f(i+1, next, s) = min{ f(i, j, s) + consume(j, next)}
f(i+1, j, next) = min{ f(i, j, s) + consume(s, next)}
同理,如果f(i, s, j), (0<=j<=4)状态可达
也可推出下一个状态:
f(i+1, s, j) = f(i, j, k) + 1; // 停在原地不动
f(i+1, next, j) = min{ f(i, s, j) + consume(s, next)}
f(i+1, s, next) = min{ f(i, s, j) + consume(j, next)}
代码
转载于:https://www.cnblogs.com/bbsno1/p/3253715.html
uva 1291 - Dance Dance Revolution ( dp )相关推荐
- uva 1218 Perfect Service 树形dp
// uva 1218 Perfect Service 树形dp // // 解题思路: // // d[u][0]表示节点本身是服务器 // d[u][1]表示节点的父节点是服务器 // d[u][ ...
- UVa 103 - Stacking Boxes(dp求解)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...
- uva 10859 放置街灯树形dp
首先,本题的优化目标有两个:放置的街灯a应该尽量少:被两灯同时照亮的边数b应该尽量大.为了统一起见,我们把后者替换为:恰好被一盏灯照亮的边数c应该尽量小,然后改用x = Ma+c作为优化目标,其中一个 ...
- UVA - 1218 Perfect Service(树形dp)
题目链接:UVA - 1218 Perfect Service 题意 有n台电脑,互相以无根树的方式连接,现要将其中一部分电脑作为服务器,且要求每台电脑必须连接且只能连接一台服务器(不包括作为服务器的 ...
- UVA 10074 Take the Land dp/暴力+剪枝
原题传送门:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...
- Uva 10074【递推dp】
UVa 10074 题意:求01矩阵的最大子0矩阵. http://www.csie.ntnu.edu.tw/~u91029/MaximumSubarray.html#2 这里说的很清楚.先求Larg ...
- uva 10401 Injured Queen Problem(dp)
题目链接:10401 - Injured Queen Problem 题目大意:给出一个字符串,要求在n * n(n为字符串的长度)的棋盘上摆放n个受伤的皇后,受伤的皇后只能攻击到同一列和它周围8个格 ...
- UVA 11578 - Situp Benches(dp)
题目链接:11578 - Situp Benches 题意:健♂身♂房有两个仰卧起坐坐垫,每次调整角度要花费10元/10度,每次使用要花费15,如今给定n个人的时间顺序,和所希望的角度,求最少花费 思 ...
- UVa 1632 阿里巴巴(区间DP)
https://vjudge.net/problem/UVA-1632 题意: 直线上有n个点,其中第i个点的坐标是xi,且它会在di秒之后消失.Alibaba可以从任意位置出发,求访问完所有点的最短 ...
最新文章
- 雷军 1994 年写的代码,经典老古董~
- mysql 多表查询实例讲解_mysql多表连接查询实例讲解
- Qt 程序获取各种文件路径方法
- 用python做一个简单的投票程序_以一个投票程序的实例来讲解Python的Django框架使...
- javafx8配置参数列表
- 【Java】Java StreamCorruptedException: invalid stream header: EFBFBDEF
- 【TI-ONE系列教程(五)】如何使用 TI-ONE SDK 玩转算法大赛
- Linux中Docker部署Tomcat
- 某台机器上IE8抛“Invalid procedure call or argument”异常
- 好的串行代码与好的并行代码的区别(Zz)
- 机器学习梯度下降举例_举例说明:机器学习
- 暗黑破坏神2 符文自动合成--按键精灵源码
- Top 10 JavaScript编辑器,你在用哪个?
- Ubuntu设置快捷键截图
- Win11启动IE浏览器
- 【2020年高被引学者】 朱松纯 北京大学
- 氨基-八聚乙二醇Amino-PEG8-alcohol,352439-37-3
- 微服务之间单点登录和用户权限认证的实现
- 8、ARM嵌入式系统:UART初始化
- 架构方案(16) 常见分布式文件存储介绍、选型比较、以及架构设计