日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 洛谷 P1464 Function

發布時間:2025/3/21 java 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 洛谷 P1464 Function 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接: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(a<=0 || b<=0 || c<=0) {return 1;}else if(a>20 || b>20 || c>20) {return w(20,20,20);}else if(f[a][b][c]!=0) {return f[a][b][c]; //如果之前被計算過,那么直接返回存在數組中的結果;沒有計算過的,就進行的計算 }else if(a<b && b<c) {f[a][b][c] = w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);}else {f[a][b][c] = w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);}return f[a][b][c];}}

總結

以上是生活随笔為你收集整理的Java 洛谷 P1464 Function的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。