题目 官方题解
题意:青蛙掉进井了,它要跳出坑。现在青蛙在深度为n的坑中。它在深度i的坑,最多能向上跳跃 a i a_i ai的高度;当青蛙跳到新的位置i,由于摩檫力和体力消化等因素,它会往后滑 b i b_i bi。现在青蛙从位置n,要跳到地面(位置0),问最小需要跳多少次,并输出路径。如果跳不出(跳不出也太难了233),输出(-1)。
思路:广搜,每次入队的点都是下滑前的位置。为保证线性复杂度,维护最近的跳跃点lst。
#include
using namespace std;
const int maxn = 300010;
int n;
int a[maxn], b[maxn], c[maxn];
int pre[maxn], vis[maxn];
vector ans;
void cal_ans(int k) {
// printf("k :%d\n", k);
while (pre[k] != -1) {
ans.push_back(k);
k = pre[k];
}
}
void print_ans() {
int sz = ans.size();
printf("%d\n", sz);
for (int i = sz - 1; i > 0; --i) {
printf("%d ", ans[i]);
}
printf("%d\n", ans[0]);
}
int main() {
scanf("%d", &n);
for (int i = 1; i >1;
if(y
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?