您当前的位置: 首页 >  Java

梁同学与Android

暂无认证

  • 4浏览

    0关注

    618博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java 洛谷 P1464 Function

梁同学与Android 发布时间:2020-02-15 12:52:39 ,浏览量:4

在这里插入图片描述

在这里插入图片描述

题目链接:https://www.luogu.com.cn/problem/P1464 知识讲解:

记忆化搜索实际上是递归来实现的,但是递归的过程中有许多的结果是被反复计算的,这样会大大降低算法的执行效率。

而记忆化搜索是在递归的过程中,将已经计算出来的结果保存起来,当之后的计算用到的时候直接取出结果,避免重复运算,因此极大的提高了算法的效率

代码实例:

import java.util.Scanner;

public class Main {
	
	public static final int f[][][] =new int[30][30][30];//开辟一个数组 f[][][],用来存储计算出来的结果
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner (System.in);
		boolean falg = true;
		int a = 0,b = 0,c = 0;
		
		//输入数据
		while(falg) {
			a = scanner.nextInt();
			b = scanner.nextInt();
			c = scanner.nextInt();
			if(a==-1&&b==-1&&c==-1) {
				break;
			} else {
				System.out.println("w("+a+", "+b+", "+c+") = "+w(a, b, c));			
			}
		}
		
		scanner.close();
	}
	
	//记忆搜索(递归)
	public static int w(int a,int b,int c) {
		if(a20) {
			return w(20,20,20);
		}else if(f[a][b][c]!=0) {
			return f[a][b][c]; //如果之前被计算过,那么直接返回存在数组中的结果;没有计算过的,就进行的计算 
		}else if(a            
关注
打赏
1660730345
查看更多评论
0.2240s