福田蒙派克e质量怎么样,凡科做的网站可以优化,深圳东门新冠,包图网登录入口算法设计与分析 4.3 传送门
题目描述 现在有 n 个传送门#xff0c;你处在第一个传送门的位置#xff0c;第 i 个传送门可以将你传送到第 i-a[i] 到第 ia[i] 范围内的任意一个传送门#xff0c;请问你最少需要几次操作#xff0c;使得你可以传送到最后一个传送门的位置。 …算法设计与分析 4.3 传送门
题目描述 现在有 n 个传送门你处在第一个传送门的位置第 i 个传送门可以将你传送到第 i-a[i] 到第 ia[i] 范围内的任意一个传送门请问你最少需要几次操作使得你可以传送到最后一个传送门的位置。 保证题目一定有解。
输入格式
第一行为一个正整数 n 1 n 104 第二行 n 个整数 a[i]0 a[i]1000
输出格式
输出一个整数表示最少操作次数。
样例输入
5
2 3 1 1 4样例输出
2参考代码
#include stdio.h
/*
* 判断当前ia[i]是否可以到达n-1的位置可以则结束
* 否则寻找i1到ia[i]范围内的最大值(ja[j])
* 然后i跳到j
* 重复
* 时间O(n)
*/
int main()
{//FILE* s;//freopen_s(s,5.txt, r, stdin);int n, count 0;scanf(%d, n);int a[10001];for (int i 0; i n; i){scanf(%d, a[i]);}int i 0, len a[0], max;while (in-1) {max 0;len i a[i];if (len n - 1) {count;break;}for (int j i 1; j len; j) {if (j a[j] max) {max j a[j];i j;}}count;}printf(%d, count);
}