猴子下山,动态规划。
来源:互联网 发布:微盘交易源码下载 编辑:程序博客网 时间:2024/05/01 01:53
题目:小猴子下山,沿着下山的路有一排桃树,每棵树都结了一些桃子。小猴子想摘桃子,但是又一些条件需要遵守,小瘦子只能沿着下山的方向走,不能回头,每棵树最多摘一个,而且一旦摘了一棵树的桃子,就不能再摘比这棵树结的桃子少的树上的桃子,那么小猴子最多能摘到几课桃子呢?
距离说明,比如有五棵树,分别结了10,4,5,12,8棵桃子,那么小猴子最多能摘3颗桃子,来自于结了4,5,12颗桃子的桃树。
输入范例:
5
10
4
5
12
8
输出范例:
3
package Test;import java.util.*;public class Main { /** 请完成下面这个函数,实现题目要求的功能 **/ /** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^ **/ static int pick(int[] peaches) { int[][] num = new int[peaches.length][peaches.length]; int x = 0; for (int i = 0; i < peaches.length - 1; i++) { for (int j = i; j < num.length; j++) { if (j == i) { num[i][j] = 1; if (x < num[i][j]) { x = num[i][j]; } } else { if (peaches[j] > peaches[i]) { int k = j - 1; while (k >= i) { if (peaches[j] >= peaches[k]) { num[i][j] = num[i][k] + 1; break; } else { k--; } } if (num[i][j] > x) { x = num[i][j]; } } else { continue; } } } } return x; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int trees = in.nextInt(); int[] peaches = new int[trees]; for (int i = 0; i < peaches.length; i++) { peaches[i] = in.nextInt(); } in.close(); System.out.println(pick(peaches)); }}
阅读全文
1 0
- 猴子下山,动态规划。
- 猴子下山摘桃
- 动态规划——猴子
- 动态规划——猴子2
- 动态规划!!!动态规划!!!
- GDOI - 2009 猴子 动态规划 重庆一中高2018级竞赛班第八次测试 2016.8.7 Problem 1
- hrbust1179下山
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- LINUX信号发送
- LINUX信号-sigaction更强壮的信号注册函数
- LINUX线程简介和简单代码案例
- hpuoj 1192: Sequence
- HDU1072-Nightmare【广度优先搜索】
- 猴子下山,动态规划。
- Android 启动过程框架
- TinyXml友员类的复习
- LINUX线程同步初探
- [bzoj4605]崂山白花蛇草水 k-d tree 带替罪羊重构
- POJ 3255 Roadblocks(次短路)
- LINUX信号量实现对公共数据的读写
- sed、akw学习指引
- angular中发布/订阅模式详解