原题链接:https://code.mi.com/problem/list/view?id=119
描述
米兔爸爸为了让小米兔好好锻炼身体,便给小米兔设置了一个挑战——跳格子。
要吃到自己心爱的胡萝卜,小米兔需要跳过面前一些格子。现有
NN
N 个格子,每个格子内都写上了一个非负数,表示当前最多可以往前跳多少格,胡萝卜就放在最后一个格子上。米兔开始站在第 1 个格子,试判断米兔能不能跳到最后一个格子吃到胡萝卜呢?
输入

输入为
NN
N 个数字 (
N<10N \lt 10
N<10),用空格隔开,第
ii
i 个数字
sis_i
s
i

(
0≤si<10 0 \le s_i \lt 10
0≤s
i

<10) 表示米兔站在第
ii
i 个格子上时,最多能往前跳的格数。

输出

若米兔能跳到最后一个格子上吃到胡萝卜,输出 “true“,否则输出 “false“

输入样例
2 0 1 0 0 3 4
复制样例
输出样例
false

贪心:

#include <iostream>
const int N=100;
using namespace std;
int a[N];
int mp[N];
int cnt=0;
int main()
{int g;char c;while(cin>>g){a[++cnt]=g;c=cin.get();if(c!=' ') break;}mp[1]=1;for(int i=1;i<=cnt;i++){if(mp[i]==1)for(int j=1;j<=a[i];j++){if(i+j<=cnt) mp[i+j]=1;}}//cout << "Hello world!" << endl;return 0;
}

DFS:

#include <iostream>
const int N=100;
using namespace std;
int a[N];
int mp[N];
int cnt=0;
bool dfs(int now){if(now==cnt) return true;for(int i=1;i<=a[now];i++){if(i+now<=cnt&&dfs(i+now)) return true;}return false;
}
int main()
{int g;char c;while(cin>>g){a[++cnt]=g;c=cin.get();if(c!=' ') break;}if(dfs(1)) cout<<"true"<<endl;else cout<<"false"<<endl;//cout << "Hello world!" << endl;return 0;
}

BFS

#include <iostream>
#include <bits/stdc++.h>
const int N=20;
using namespace std;
int a[N];
bool bfs(int n){queue<int> q;q.push(1);while(!q.empty()){int now=q.front();q.pop();if(now==n) return true;for(int i=1;i<=a[now];i++) q.push(now+i);}return false;
}
int main()
{int n;int cnt=0;char c;//cin>>n;while(cin>>n){c=cin.get();a[++cnt]=n;if(c!=' ') break;}//for(int i=1;i<=cnt;i++) cin>>a[i];if(bfs(cnt)) puts("true"); else puts("false");//cout << "Hello world!" << endl;return 0;
}

转载于:https://www.cnblogs.com/-yjun/p/10629896.html

小米兔跳格子 (dfs BFS/ 贪心)相关推荐

  1. 小米OJ 119(小米兔跳格子)

    小米兔跳格子序号:#119 难度:一般 时间限制:1000ms 内存限制:30M 描述 米兔爸爸为了让小米兔好好锻炼身体,便给小米兔设置了一个挑战--跳格子. 要吃到自己心爱的胡萝卜,小米兔需要跳过面 ...

  2. 小米OJ上分日志——(119)小米兔跳格子

    序号:#119 难度:一般 时间限制:1000ms 内存限制:30M 描述 米兔爸爸为了让小米兔好好锻炼身体,便给小米兔设置了一个挑战--跳格子. 要吃到自己心爱的胡萝卜,小米兔需要跳过面前一些格子. ...

  3. 【小米oj】 小米兔跳格子

    1 #define mm(a) memset(a,0,sizeof(a)); 2 #define max(x,y) (x)>(y)?(x):(y) 3 #define min(x,y) (x)& ...

  4. (3)【全局路径规划】图搜索的路径探索方法--DFS\BFS\DFS-ID、贪心算法、Dijkstra和A*、JPS、.hybird A*、

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 图搜索的方法 0.基础知识介绍 1)图的概念 2)规划配置空间(C- ...

  5. 【DFS/BFS】NYOJ-58-最少步数(迷宫最短路径问题)

    [题目链接:NYOJ-58] 经典的搜索问题,想必这题用广搜的会比较多,所以我首先使的也是广搜,但其实深搜同样也是可以的. 不考虑剪枝的话,两种方法实践消耗相同,但是深搜相比广搜内存低一点. 我想,因 ...

  6. POJ2308连连看dfs+bfs+优化

    DFS+BFS+MAP+剪枝 题意:       就是给你一个10*10的连连看状态,然后问你最后能不能全部消没? 思路:      首先要明确这是一个搜索题目,还有就是关键的一点就是连连看这个游戏是 ...

  7. 链式前向星模板 建图+dfs+bfs+dijkstra

    边没有用struct封装起来,节点和边的计数起点如果不符合习惯可以稍作修改 建图+DFS+BFS #include <cstdio> #include <cstring> #i ...

  8. 算法 - DFS/BFS

    DFS函数大概率会传递"位置信息",根据位置信息获取下一步的选择,(大部分是在循环中)选择.执行.回退 例如N皇后的 棋盘位置(x, y),组合问题的 idx DFS函数的目的是, ...

  9. [Leetcode][第130题][JAVA][被围绕的区域][DFS][BFS]

    [问题描述][中等] [解答思路] 1. 深度优先搜索 使用深度优先搜索实现标记操作.在下面的代码中,我们把标记过的字母 O 修改为字母 A. 复杂度 class Solution {int[] dx ...

最新文章

  1. 使用 ftrace 调试 Linux 内核,第 2 部分
  2. 复工之后,如何让自己的时间更值钱
  3. 【RTOS】基于V7开发板的uCOS-III,uCOS-II,RTX4,RTX5,FreeRTOS原版和带CMSIS-RTOS V2封装层版全部集齐...
  4. 赠书 | SkyWalking 观测 Service Mesh 技术大公开
  5. 差分数组|小a的轰炸游戏-牛客317E
  6. php 瓶颈,使用XHProf查找PHP性能瓶颈
  7. 三十岁还没做到管理层的人,后来都怎么样了?
  8. 图片数据标注工具与平台(数据标注公司)总结
  9. Android实现选择题答题(包括单选、多选和答题卡)
  10. Linux群控链接USB手机个数,群控系统能做到同时控制上百台手机吗?教你如何群控手机...
  11. iPhone所有手机型号屏幕尺寸及H5的CSS适配
  12. 水中搬运代码2d仿真鱼_大脸猫大脸猫爱吃鱼?天生怕水的猫咪怎么会爱上吃鱼的...
  13. Windows与ipad共享文件
  14. Lorenzo Von Matterhorn(暴力)(树)
  15. java 登录12306_请教java尝试模拟登录12306时遇到的一个问题
  16. 国产处理器服务器操作系统安装(海之舟服务器操作系统安装说明)
  17. java.lang.String cannot be cast to com.rock.bpo.agent.base.LoginUser
  18. vue项目中表格删除数据页码显示注意点
  19. python找出素数_python找素数
  20. yapi中mock jsonp接口响应的方法

热门文章

  1. Java Date equals()方法具有什么功能呢?
  2. 测试用例编写的准备、原则和覆盖范围
  3. SCU 4438 Censor (KMP)
  4. 记录奥运男子马拉松赛
  5. 风险投资1: 风投的起源
  6. 流水灯花灯c语言程序,0x01(16个流水灯c语言程序)
  7. C++ 头文件的相互包含问题C2504未定义基类 | C2143,C4430,C2238
  8. python使用opencv调取摄像头捕获图片或视频通用模板
  9. 来自Gavin的Transformer硅谷杂谈系列课程第一季免费公益课
  10. 2013年:各大IT公司待遇「转自网络」