OJ动态规划水果忍者

Posted BHY_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OJ动态规划水果忍者相关的知识,希望对你有一定的参考价值。

题目描述

水果忍者要进行新的试炼。老大会向他依次向他扔出N个水果,每个水果有一定的分值,水果忍者一次只能切掉一个水果,同时获得水果的分值,当然他也可以选择不切,也就不能获得相应分值。但是水果有不同的种类,如果某一次切掉的水果和上一次切掉水果种类相同,则要扣掉10分!请问忍者最多能获得多少分,并且获得最大分值所需切掉的最少水果的个数是多少?

解答要求

时间限制: 1000ms,内存限制: 64MB

输入

第一行包含一个数N ( 1<=N<=3000)
接下来有N行,每行包含2个数X, Y ,第1+1行的X和Y表示第种水果的种类和分值。 (1<=X<=10,1<=Y<=20)

输出

输出一行,包含2个数,依次为能获得的最大分值和所需切掉水果的最少个数。

样例

输入样例1
5
1 10
1 5
2 4
3 9
4 8
输出样例1
31 4

 

c语言代码:

#include<stdio.h>

int *g_score;
int *g_kind;
int *g_dp;
int g_rows;
int g_cols = 2;
//输入单独做接口,兼容给定函数的题
void inputData()

	if(scanf_s("%d", &g_rows) != 1) 
		r

以上是关于OJ动态规划水果忍者的主要内容,如果未能解决你的问题,请参考以下文章

动态规划算法求解水果杂交问题

JavaScript实现的水果忍者游戏,支持鼠标操作

基于Cocos Creator的水果忍者游戏

PAT L3-012 水果忍者

oj算法----动态规划----背包问题

《游戏学习》| 水果忍者HTML5网页版在线游戏 | 源码分析