DP 動態規劃入門 一維陣列
一個一維陣列,取一個數後不能取其相鄰的數,取a0就不能取a1,取a1不能取a0和a2,求能取最大數之和。
輸入:
5(陣列長度)
[4,7,9,3,1]
輸出: 14
思路:順應題目int一個相同長度的陣列s[n],s[n]對應a[0]到a[n]的最大數之和(不取相鄰數)。類似數學裡的數列。
然後一個數判斷一次,從第一個判斷到最後一個就可以了。
程式碼規範如下
#include<bits/stdc++.h>
using namespace std;
#define maxn 100010
int n,a[maxn],dp[maxn];
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i],dp[i]=0;
dp[1]=a[1];
for(int i=2;i<=n;i++) dp[i]=max(dp[i-2]+a[i],dp[i-1]);
cout<<max(dp[n-1],dp[n])<<endl;
return 0;
}
相關文章
- 動態規劃使用一維陣列要注意的問題動態規劃陣列
- 動態規劃(DP)動態規劃
- 動態規劃入門——動態規劃與資料結構的結合,在樹上做DP動態規劃資料結構
- 動態規劃入門篇動態規劃
- 陣列004 動態建立一維陣列陣列
- 動態規劃入門 E – 免費餡餅 (dp的另一個應用)動態規劃
- [動態規劃] 區間 dp動態規劃
- (C++)DP動態規劃C++動態規劃
- DP動態規劃-爬塔(雙層dp)動態規劃
- 禮物的最大價值(一維動態規劃&二維動態規劃)動態規劃
- 一文帶你入門動態規劃動態規劃
- 動態規劃篇——線性DP動態規劃
- 一維動態規劃總結動態規劃
- 演算法基礎:動態規劃陣列中滾動陣列的使用演算法動態規劃陣列
- LeetCode入門指南 之 動態規劃思想LeetCode動態規劃
- 【動態規劃】一些奇怪的DP題目的列表動態規劃
- 動態規劃 區間dp 基礎題動態規劃
- 【動態規劃】樹形DP完全詳解!動態規劃
- 動態規劃中初識狀態壓縮(入門)動態規劃
- 動態規劃演算法(DP)學習<1>動態規劃演算法
- 強化學習(三)用動態規劃(DP)求解強化學習動態規劃
- 迴文串問題(動態規劃DP C++)動態規劃C++
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 【動態規劃】用一維和二維解決不同路徑動態規劃
- 動態規劃之經典數學期望和概率DP動態規劃
- [JAVA] Java 陣列、多維陣列,動態、靜態初始化,陣列JVM記憶體模型分析Java陣列JVM記憶體模型
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 矩陣連乘(動態規劃演算法)矩陣動態規劃演算法
- 矩陣連乘問題 Python 動態規劃矩陣Python動態規劃
- 動態規劃動態規劃
- 動態陣列陣列
- 一維陣列陣列
- 動態dp & 矩陣加速遞推矩陣
- 動態規劃——用二進位制表示集合的狀態壓縮DP動態規劃
- 二維陣列動態開闢與傳參陣列
- 一維多維陣列陣列
- 一文搞懂動態規劃動態規劃