zoukankan      html  css  js  c++  java
  • 【题解】跳格子

    题目描述

    星期天,小明做完作业就约同学出去运动。
    他们来到了一片空地,画了N个连续的方格,每个方格上随机填上了一个数字,大家从第一个格子开始,每次可以向后跳不超过当前格子上的数的步数,大家开始就此比赛,看谁跳到最后一个格子的步数最少。
    作为领队的小明显然是想获得胜利的,所以他希望你能帮助他。

    输入输出格式

    输入格式:

    第一行包括一个整数N(N<5000),表示画的格子的个数;
    第二行包含N个整数,表示每个格子上的数ai(ai≤1000)。

    输出格式:

    输出一行,表示跳的最少步数。

    输入输出样例

    输入样例:

    5
    2 3 1 1 1
    

    输出样例:

    2
    

    这道题乍一看好像是回溯
    然后超时
    然后发现可以逆向思维

    从后往前找

    从后往前找

    从后往前找!

    附代码:

    #include<iostream>
    using namespace std;
    int n,a[5005],now,step;
    int main()
    {
    	cin>>n;
    	for(register int i=1;i<=n;++i) cin>>a[i];
    	now=n;
    	while(now!=1)
    	{
    		for(register int i=1;i<=now;++i)
    		{
    			if(now-i<=a[i])
    			{
    				now=i;
    				++step;
    				break;
    			}
    		}
    	}
    	cout<<step;
    }
    
  • 相关阅读:
    BETA 版冲刺前准备
    Alpha 事后诸葛亮(团队)
    Learn Docker(一)—软件安装与常规操作
    Alpha 答辩总结
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    团队作业-随堂小测(同学录)
  • 原文地址:https://www.cnblogs.com/2021-yanghaoran/p/11583945.html
Copyright © 2011-2022 走看看