魔法少女【动态规划问题】——NYOJ1204
个人博客页:https://www.scriptboy.cn/202.html
题目描述:
前些时间虚渊玄的巨献小圆着实火了一把。 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙。 因为魔女之夜是悬浮在半空的,所以她必须要爬楼,而那座废墟一共有n层,而且每层高度不同,这造成小炎爬每层的时间也不同。不过当然,小炎会时间魔法,可以瞬间飞过一层或者两层[即不耗时]。但每次瞬移的时候她都必须要至少往上再爬一层(在这个当儿补充魔力)才能再次使用瞬移。爬每单位高度需要消耗小炎1秒时间。 消灭魔女之夜是刻不容缓的,所以小炎想找你帮她找出一种最短时间方案能通往楼顶。
输入描述:
本题有多组数据,以文件输入结尾结束。 每组数据第一行一个数字N(1 <= N <= 10000),代表楼层数量。 接下去N行,每行一个数字H(1 <= H <= 100),代表本层的高度。
输出描述:
对于每组数据,输出一行,一个数字S,代表通往楼顶所需的最短时间。
样例输入:
|
5
3
5
1
8
4
|
样例输出:
|
1
|
思路:
假设h[n+1]表示每层的高度,h[0]=0,f[i][0]表示在第i层不飞情况下的时间,f[i][1]表示在第i层飞的情况下的时间,可见有如下关系:
- 如果层数i=1,如果在不飞的情况下,f[1][0] = h[1];在飞的情况下,f[1][1] = 0;
- 如果层数i=2,如果在不飞的情况下,f[2][0] = h[2];在飞的情况下,f[1][1] = 0;
- 如果层数i=3,如果在不飞的情况下,f[3][0] = min(f[2][0], f[2][1])+h[3];在飞的情况下(可以是飞一层到i层,也可以是飞),f[3][1] = min(f[2][0], f[1][0]);
- 所以可以看出,状态转移方程为
f[i][0] = min(f[i-1][0], f[i-1][1])+h[i]和f[i][1] = min(f[i-1][0], f[i-2][0]);
AC代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#include <bits/stdc++.h>
using namespace std;
int f[10005][2];
int h[10005];
int main()
{
int n;
while(cin >> n)
{
for(int i = 1; i <= n; i++)
{
cin >> h[i];
}
f[1][0] = h[1];f[1][1] = 0;
f[2][0] = h[2];f[2][1] = 0;
for(int i = 3; i <= n; i++)
{
f[i][0] = min(f[i-1][0], f[i-1][1]) + h[i];
f[i][1] = min(f[i-1][0], f[i-2][0]);
}
cout << min(f[n][0], f[n][1]) << endl;
}
return 0;
}
|
魔法少女【动态规划问题】——NYOJ1204的更多相关文章
- NBUT 1010 魔法少女(DP)
[1010] 魔法少女 时间限制: 1000 ms 内存限制: 65535 K 问题描述 前些时间虚渊玄的巨献小圆着实火了一把. 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙. ...
- 【Fate/kaleid liner 魔法少女☆伊莉雅】系列中实践的、新世代的动画摄影工作流
通常的日本动画的摄影中,是以追加Cell(celluloid 赛璐珞)与背景的合成滤镜处理为主,而在[Fate/kaleid liner 魔法少女☆伊莉雅]系列的,加入了自己使用3DCG软 ...
- bzoj 4399 魔法少女LJJ
4399: 魔法少女LJJ Time Limit: 20 Sec Memory Limit: 162 MBhttp://www.lydsy.com/JudgeOnline/problem.php?i ...
- BZOJ4399魔法少女LJJ——线段树合并+并查集
题目描述 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了LJJ感叹道“这里真是个迷人的绿色世界,空气清新.淡雅,到处散发着醉人的奶浆味: ...
- nyoj 魔法少女
魔法少女 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 前些时间虚渊玄的巨献小圆着实火了一把. 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙. 因为 ...
- BZOJ4399 魔法少女LJJ【线段树合并】【并查集】
Description 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了 LJJ感叹道"这里真是个迷人的绿色世界,空气清新.淡雅 ...
- NYOJ 诡异的电梯 && nyoj 1204 魔法少女
诡异的电梯[Ⅰ] 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 新的宿舍楼有 N(1≤N≤100000) 层 and M(1≤M≤100000)个学生. 在新的宿舍楼里 ...
- 魔法少女 LJJ——线段树
题目 [题目描述] 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女 LJJ 已经觉得自己见过世界上的所有稀奇古怪的事情了. LJJ 感叹道“这里真是个迷人的绿色世界,空气清新.淡雅,到处 ...
- AC日记——魔法少女LJJ bzoj 4399
魔法少女LJJ 思路: 动态开点权值线段树+启发式合并: 来,上代码: #include <cmath> #include <cstdio> #include <cstr ...
- 【bzoj4399】魔法少女LJJ 并查集+权值线段树合并
题目描述 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了LJJ感叹道“这里真是个迷人的绿色世界,空气清新.淡雅,到处散发着醉人的奶浆味: ...
随机推荐
- @ModelAttribute注解详解
@ModelAttribute注解详解 1.@ModelAttribute定义: 被该注解定义的方法,会在该方法所在的controller的任何目标方法执行之前执行 2.@ModelAttribute ...
- python-代理模式
源码地址:https://github.com/weilanhanf/PythonDesignPatterns 说明: 模式动机 通过引入一个新的对象(如小图片和远程代理对象)来实现对真实对象的操作或 ...
- idea加载JSTL库
被这个错误缠了很长时间,偶然解决.eclipse for EE里导入JSTL没有问题,在JetIdea里就报classnotfound的异常. 解决方案:打包方式fix一下 新建library fil ...
- ActiveReports 区域报表中的事件介绍
1.仅触发一次的事件 以下是在报表的处理过程中仅触发一次的所有事件这些事件在报表的处理周期中仅在最开始和结束前触发一次. ReportStart 该事件在DataInitialize事件触发之前发生. ...
- MariaDB Centos7 下安装MariaDB
Centos7 下安装MariaDB by:授客 QQ:1033553122 1.下载安装文件 rpm包为例,对于标准服务器安装,至少需要下载client,shared,serve文件(安装时如果少了 ...
- AndroidKiller报.smali文件丢失问题解决(关闭Android Studio的Instant Run)
第一节编写一个Android程序里我们生成了一个验证激活码的apk,当我们输入的激活码正确时才能注册成功,输入错误时注册失败. 现在我们想输入错误的激活码也能注册.我们用Android反编译工具进行反 ...
- ejb-jar.xml
所有bean类(无论是会话bean还是实体bean)必须实现的最基本的接口是javax.ejb.EnterpriseBean接口. 所有的会话bean必须实现javax.ejb.SessionBean ...
- .Net 初步学习笔记之三---变量
一.存储变量的语法: 变量类型 变量名: 变量名=值: “=”号:把等号右边的值赋值给等号左边的变量 二.常用的变量 1.整数类型 int //只存整数,不能存小数 2.小数类型 double ...
- python的学习之路day4
大纲 1.一些常用的内置函数 callable() chr() & ord() 随机生成验证码 map() 全局变量,局部变量 hash() & round() max() min() ...
- 乘风破浪:LeetCode真题_033_Search in Rotated Sorted Array
乘风破浪:LeetCode真题_033_Search in Rotated Sorted Array 一.前言 将传统的问题进行一些稍微的变形,这个时候我们可能无所适从了,因此还是实践出真知, ...