zoukankan      html  css  js  c++  java
  • NBUT 1010 魔法少女(DP)

    • [1010] 魔法少女

    • 时间限制: 1000 ms 内存限制: 65535 K
    • 问题描述
    • 前些时间虚渊玄的巨献小圆着实火了一把。 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙。 因为魔女之夜是悬浮在半空的,所以她必须要爬楼,而那座废墟一共有n层,而且每层高度不同,这造成小炎爬每层的时间也不同。不过当然,小炎会时间魔法,可以瞬间飞过一层或者两层[即不耗时]。但每次瞬移的时候她都必须要至少往上再爬一层(在这个当儿补充魔力)才能再次使用瞬移。爬每单位高度需要消耗小炎1秒时间。 消灭魔女之夜是刻不容缓的,所以小炎想找你帮她找出一种最短时间方案能通往楼顶。

    • 输入
    • 本题有多组数据,以文件输入结尾结束。
      每组数据第一行一个数字N(1 <= N <= 10000),代表楼层数量。
      接下去N行,每行一个数字H(1 <= H <= 100),代表本层的高度。
    • 输出
    • 对于每组数据,输出一行,一个数字S,代表通往楼顶所需的最短时间。
    • 样例输入
    • 5
      3
      5
      1
      8
      4
      
    • 样例输出
    • 1

    题目链接:NBUT 1010

    用dp[i][k]表示当前到了i层且是用k方式上来的,若k=1则是飞到i层的,若k=0则是走到i层的,然后就有转移方程……具体看代码

    代码:

    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    #include<sstream>
    #include<cstring>
    #include<bitset>
    #include<cstdio>
    #include<string>
    #include<deque>
    #include<stack>
    #include<cmath>
    #include<queue>
    #include<set>
    #include<map>
    using namespace std;
    #define INF 0x3f3f3f3f
    #define CLR(x,y) memset(x,y,sizeof(x))
    #define LC(x) (x<<1)
    #define RC(x) ((x<<1)+1)
    #define MID(x,y) ((x+y)>>1)
    typedef pair<int,int> pii;
    typedef long long LL;
    const double PI=acos(-1.0);
    const int N=10010;
    int pos[N];
    int dp[N][2];
    int main(void)
    {
    	int n,i,j;
    	while (~scanf("%d",&n))
    	{
    		CLR(dp,INF);
    		for (i=1; i<=n; ++i)
    			scanf("%d",pos+i);
    		dp[0][0]=dp[0][1]=0;
    		for (i=1; i<=n; ++i)
    		{
    			dp[i][0]=min(dp[i-1][1],dp[i-1][0])+pos[i];//这层是走上来的,上一层可以是飞上来或者也是走上来的 
    			if(i<=1)
    				dp[i][1]=dp[i-1][1];// 
    			else
    				dp[i][1]=min(dp[i-1][0],dp[i-2][0]);//这层是飞上来的,上一层是走的或者是从上上层飞过来的			
    		}
    		printf("%d
    ",min(dp[n][1],dp[n][0]));
    	}
    	return 0;
    }
  • 相关阅读:
    [loj2706]文本编辑器
    [atAGC053C]Random Card Game
    [atAGC056E]Cheese
    [cf1615G]Maximum Adjacent Pairs
    [cf739D]Recover a functional graph
    [uoj693]地铁规划
    [atAGC053E]More Peaks More Fun
    [atAGC056B]Range Argmax
    [atAGC056F]Degree Sequence in DFS Order
    SceneGrabber NET 视频批量自动截图软件使用技巧
  • 原文地址:https://www.cnblogs.com/Blackops/p/5808592.html
Copyright © 2011-2022 走看看