C 不平衡陣列 線性DP

2021-10-06 21:31:21 字數 1169 閱讀 7982

題目描述:給定乙個長度為 n 的陣列。要求相臨的數大小不相同,假如相臨數的相同,你可以通過將 a[i]+1 來改變它的大小,但是需要付出 b[i]的代價,同時對於每個 a[i]只能加一次。問你付出的最小代價。

對於100%的資料,1<=n<=2e5,0<=a[i]、b[i]<=1e9

思路 : 每個位置有兩個狀態 (+1 或 不+1) , 所以直接dp轉移狀態就好了;

集合表示 :dp[ i ][ j ] 表示前 i 個數里使相鄰的數不相等時所花費的最小代價; 當 j = 0 時表示第 i 位不+1, j = 1 時表示第 i 位+1 ;

集合劃分 :根據相鄰兩個數是否相等 , 以及+1後與相鄰的數的關係分為四種情況進行狀態轉移 ;

code1 :

#include

using

namespace std;

const

int n =

2e5+7;

int a[n]

,b[n]

;long

long dp[n][2

];intmain()

else

if(a[i-1]

+1==a[i]

)else

if(a[i-1]

==a[i]+1

)else

} cout<<

min(dp[n][1

],dp[n][0

])

return0;

}

code2 :

#include

using

namespace std;

const

int n =

2e5+7;

int a[n]

,b[n]

;long

long dp[n][2

];intmain()

cout<<

min(dp[n][1

],dp[n][0

])

}

資料不平衡問題

資料不平衡問題實際上指的就是y的分布相差很大的問題,又稱為類別不平衡問題。出現這種問題的原因是在實際取樣中,有可能會出現一類的y數量遠遠大於另一類的例子。乙個很明顯的例子就是在做信用卡還款 的時候,一定是按時還款的人佔據絕大多數,不按時還款的人佔一小部分,那如果機器無腦 新客戶一定會還款,正確率是很...

類別不平衡問題

詳解類別不平衡問題 盧總 類別不平衡問題的方法彙總 為少數類生成新樣本 smote borderline smote adasyn 整合方法 演算法層面 focal loss 損失函式的權重調整 閾值移動 評價指標 非均衡資料處理 如何學習?隨機降取樣 bagging是萬金油。屬於bagging 假...

不平衡類問題總結

不平衡類的問題很常見,解決該類問題的方法一般有兩種,一種是在目標函式中增加懲罰項,使得錯分某一種類 或多類 的成本增大。另一種是重取樣,使得兩類或多類的分布較為均衡。乙個分類器的效能好壞,取決於取決於用什麼樣的度量標準。混淆矩陣是一種常用的度量方法,混淆矩陣的示意圖如下 其中,tn表示為 true ...