国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

動(dòng)態(tài)規(guī)劃入門之線性動(dòng)態(tài)規(guī)劃

這篇具有很好參考價(jià)值的文章主要介紹了動(dòng)態(tài)規(guī)劃入門之線性動(dòng)態(tài)規(guī)劃。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

P1115 最大子段和 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)

題目要求求連續(xù)得一段子串使其累加和最大。

我們做動(dòng)態(tài)規(guī)劃首先考慮小情況,然后推而廣之。

假設(shè)三個(gè)數(shù)1,-2,5.

我們先選1然后我們?cè)?2以及-2加1里邊選,我們選-1,接著我們?cè)?1以及5里邊選我們選擇5

由此我們發(fā)現(xiàn)我們選擇是從以第n-1個(gè)數(shù)結(jié)尾的最長(zhǎng)長(zhǎng)度加上第n個(gè)數(shù)同第n個(gè)數(shù)比取最大的。

正如我們?cè)谂袛嗟诙€(gè)數(shù)-2時(shí),我們不確定加上第二個(gè)數(shù)是否可行,因?yàn)橐筮B續(xù),所以我們

針對(duì)第二個(gè)數(shù)的策略只有加與不加,不加就從第二個(gè)數(shù)開(kāi)始為起點(diǎn)加的話就累加,算最大的。

同時(shí)我們還要在以某個(gè)數(shù)為終點(diǎn)的累加中取最大的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-662983.html


import java.awt.FontFormatException;
import java.io.BufferedReader; 
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.lang.reflect.AnnotatedWildcardType;
import java.math.BigInteger;
import java.net.DatagramPacket;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Map;
import java.util.Objects;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.Spliterator.OfPrimitive;
import java.util.function.IntToDoubleFunction;
import java.util.function.LongBinaryOperator;
import java.util.TreeMap;
import java.util.TreeSet;
import javax.management.relation.InvalidRelationTypeException;
import javax.print.attribute.standard.JobMessageFromOperator;
import javax.print.attribute.standard.JobPriority;
import javax.swing.plaf.ColorChooserUI;
import javax.swing.table.TableModel;
import javax.swing.text.TabSet;
import javax.xml.crypto.dsig.spec.DigestMethodParameterSpec;
public class Main {
  public static void main(String[] args) throws IOException  {
Scanner sc=new Scanner(System.in);
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw1=new PrintWriter(System.out);
String[] aStrings=br1.readLine().split(" ");
int a=Integer.parseInt(aStrings[0]);
aa=new int[a];
String[] bStrings=br1.readLine().split(" ");
int b;
for(b=0;b<a;b++) {
	aa[b]=Integer.parseInt(bStrings[b]);
}
int[] dp=new int[a+1];
dp[0]=aa[0];
int answer=aa[0];
for(b=1;b<a;b++) {
	dp[b]=Math.max(aa[b], dp[b-1]+aa[b]);
	answer=Math.max(answer, dp[b]);
}
System.out.println(answer);
  }
public static int[] aa;
		  
 }
 

到了這里,關(guān)于動(dòng)態(tài)規(guī)劃入門之線性動(dòng)態(tài)規(guī)劃的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C++動(dòng)態(tài)規(guī)劃-線性dp算法

    C++動(dòng)態(tài)規(guī)劃-線性dp算法

    莫愁千里路 自有到來(lái)風(fēng) CSDN 請(qǐng)求進(jìn)入專欄? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??X 是否進(jìn)入《 C++ 專欄》? 確定 目錄 ?線性dp簡(jiǎn)介 斐波那契數(shù)列模型? 第N個(gè)泰波那契數(shù) 思路: 代碼測(cè)試: ?三步問(wèn)題 思路: 代碼測(cè)試: 最小花費(fèi)爬樓梯 思路: 代碼測(cè)試: ?路徑問(wèn)題 數(shù)字三

    2024年02月19日
    瀏覽(38)
  • 算法基礎(chǔ)復(fù)盤筆記Day10【動(dòng)態(tài)規(guī)劃】—— 線性DP

    算法基礎(chǔ)復(fù)盤筆記Day10【動(dòng)態(tài)規(guī)劃】—— 線性DP

    ? 作者主頁(yè):歡迎來(lái)到我的技術(shù)博客?? ? 個(gè)人介紹:大家好,本人熱衷于 Java后端開(kāi)發(fā) ,歡迎來(lái)交流學(xué)習(xí)哦!( ̄▽ ̄)~* ?? 如果文章對(duì)您有幫助,記得 關(guān)注 、 點(diǎn)贊 、 收藏 、 評(píng)論 ?????? ?? 您的支持將是我創(chuàng)作的動(dòng)力,讓我們一起加油進(jìn)步吧?。。???? 1. 題目

    2023年04月21日
    瀏覽(32)
  • acwing算法基礎(chǔ)之動(dòng)態(tài)規(guī)劃--線性DP和區(qū)間DP

    線性DP:狀態(tài)轉(zhuǎn)移表達(dá)式存在明顯的線性關(guān)系。 區(qū)間DP:與順序有關(guān),狀態(tài)與區(qū)間有關(guān)。 題目1 :數(shù)字三角形。 解題思路:直接DP即可, f[i][j] 可以來(lái)自 f[i-1][j] + a[i][j] 和 f[i-1][j-1] + a[i][j] ,注意 f[i-1][j] 不存在的情況(最后一個(gè)點(diǎn))和 f[i-1][j-1] 不存在的情況(第一個(gè)點(diǎn))。

    2024年02月04日
    瀏覽(21)
  • 【算法入門】淺談動(dòng)態(tài)規(guī)劃

    【算法入門】淺談動(dòng)態(tài)規(guī)劃

    關(guān)于動(dòng)態(tài)規(guī)劃的定義,網(wǎng)上有很多,但對(duì)于初學(xué)者,看了定義之后,多少會(huì)有點(diǎn)懵,接下來(lái)我打算用倆到三個(gè)例題來(lái)引入動(dòng)態(tài)規(guī)劃的定義,我將動(dòng)態(tài)規(guī)劃分為動(dòng)態(tài)和規(guī)劃倆部分,動(dòng)態(tài)說(shuō)明它是變化的,規(guī)劃說(shuō)明它是從前到后的,所以綜合下來(lái)就是后面的由前面或者說(shuō)受前面影

    2024年04月12日
    瀏覽(25)
  • 算法套路十三——?jiǎng)討B(tài)規(guī)劃DP入門

    算法套路十三——?jiǎng)討B(tài)規(guī)劃DP入門

    動(dòng)態(tài)規(guī)劃和遞歸都是通過(guò)將大問(wèn)題分解為較小的子問(wèn)題來(lái)解決問(wèn)題。它們都可以用來(lái)解決具有重疊子問(wèn)題和最優(yōu)子結(jié)構(gòu)特性的問(wèn)題。 遞歸是一種自頂向下的方法, 它從原始問(wèn)題開(kāi)始 ,遞歸地將問(wèn)題分解為較小的子問(wèn)題dfs(i)—— dfs(i)代表的是從第i個(gè)狀態(tài)開(kāi)始進(jìn)行遞歸求解能

    2024年02月15日
    瀏覽(22)
  • AcWing算法學(xué)習(xí)筆記:動(dòng)態(tài)規(guī)劃(背包 + 線性dp + 區(qū)間dp + 計(jì)數(shù)dp + 狀態(tài)壓縮dp + 樹(shù)形dp + 記憶化搜索)

    AcWing算法學(xué)習(xí)筆記:動(dòng)態(tài)規(guī)劃(背包 + 線性dp + 區(qū)間dp + 計(jì)數(shù)dp + 狀態(tài)壓縮dp + 樹(shù)形dp + 記憶化搜索)

    算法 復(fù)雜度 時(shí)間復(fù)雜度0(nm) 空間復(fù)雜度0(nv) 代碼 算法 通過(guò)滾動(dòng)數(shù)組對(duì)01背包樸素版進(jìn)行空間上的優(yōu)化 f[i] 與 f[i - 1]輪流交替 若體積從小到大進(jìn)行遍歷,當(dāng)更新f[i, j]時(shí),f[i - 1, j - vi] 已經(jīng)在更新f[i, j - vi]時(shí)被更新了 因此體積需要從大到小進(jìn)行遍歷,當(dāng)更新f[i, j]時(shí),f[i - 1,

    2024年02月21日
    瀏覽(21)
  • 【算法思考記錄】動(dòng)態(tài)規(guī)劃入門!力扣2606. 找到最大開(kāi)銷的子字符串【Python3、動(dòng)態(tài)規(guī)劃】

    原題鏈接 動(dòng)態(tài)規(guī)劃(Dynamic Programming,簡(jiǎn)稱 DP)是一種通過(guò)將原問(wèn)題分解為相互重疊的子問(wèn)題并只解決一次的方法來(lái)解決問(wèn)題的算法優(yōu)化技術(shù)。動(dòng)態(tài)規(guī)劃通常用于優(yōu)化遞歸問(wèn)題,通過(guò)存儲(chǔ)子問(wèn)題的解來(lái)避免重復(fù)計(jì)算,從而顯著提高算法的效率。 動(dòng)態(tài)規(guī)劃的基本思想是將原問(wèn)題

    2024年02月03日
    瀏覽(26)
  • Java算法之動(dòng)態(tài)規(guī)劃

    Java算法之動(dòng)態(tài)規(guī)劃

    ? 最近這一段時(shí)間一直在刷算法題,基本上一有時(shí)間就會(huì)做一兩道,這兩天做了幾道動(dòng)態(tài)規(guī)劃的問(wèn)題,動(dòng)態(tài)規(guī)劃之前一直是我比較頭疼的一個(gè)問(wèn)題,感覺(jué)好復(fù)雜,一遇到這樣的問(wèn)題就想跳過(guò),昨天耐著性子做了一道動(dòng)態(tài)規(guī)劃的題,感覺(jué)沒(méi)有我想象的那么難,無(wú)非就是先定義

    2024年04月17日
    瀏覽(18)
  • Java動(dòng)態(tài)規(guī)劃算法

    動(dòng)態(tài)規(guī)劃是一種優(yōu)化問(wèn)題的算法,它的思想是將復(fù)雜問(wèn)題分解成簡(jiǎn)單的子問(wèn)題,通過(guò)子問(wèn)題的解來(lái)推導(dǎo)出原問(wèn)題的解。動(dòng)態(tài)規(guī)劃可以用于解決一些具有重疊子問(wèn)題和最優(yōu)子結(jié)構(gòu)性質(zhì)的問(wèn)題。在Java中,動(dòng)態(tài)規(guī)劃常常用于解決字符串、數(shù)組和圖等問(wèn)題。 動(dòng)態(tài)規(guī)劃的核心思想是將

    2024年02月14日
    瀏覽(12)
  • 算法筆記(Java)——?jiǎng)討B(tài)規(guī)劃

    算法筆記(Java)——?jiǎng)討B(tài)規(guī)劃

    動(dòng)態(tài)規(guī)劃,英文:Dynamic Programming,簡(jiǎn)稱DP,如果某一問(wèn)題有很多重疊子問(wèn)題,使用動(dòng)態(tài)規(guī)劃是最有效的。 所以動(dòng)態(tài)規(guī)劃中每一個(gè)狀態(tài)一定是由上一個(gè)狀態(tài)推導(dǎo)出來(lái)的,這一點(diǎn)就區(qū)分于貪心,貪心沒(méi)有狀態(tài)推導(dǎo),而是從局部直接選最優(yōu)的, 動(dòng)規(guī)和遞歸的區(qū)別是動(dòng)規(guī)不是暴力的

    2024年02月08日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包