AcWing1081 度的數量(數字dp)

2022-05-28 16:45:08 字數 656 閱讀 5422

對於數字dp的題目,我學習的是y總的模板,也就是說把所有數先用拆位後考慮從頭開始考慮,形成乙個樹的形狀

左分支為填0-ai-1的情況,這列情況一般可以通過數學公式一次性求出,之後右分支就填當前數,這樣向下延申,在最後特判右分支的情況,也就是乙個數

對於數字dp,一般儲存兩個量,乙個是個數,乙個是last,用來儲存字首資訊。這些都是基本思路

其他的需要根據題目來分析:

#include#include

using

namespace

std;

const

int n=35

;int

f[n][n];

intx,y,k,b;

void

init()}}

}int dp(int

n)

int res=0

;

int last=0

;

inti;

for(i=num.size()-1;i>=0;i--)

else

}if(!i&&last==k)

res++;

}return

res;

}int

main()

view code

AcWing 1081 度的數量

度的數量 求給定區間 x,y 中滿足下列條件的整數個數 這個數恰好等於 k 個互不相等的 b 的整數次冪之和。例如,設 x 15,y 20,k 2,b 2 則有且僅有下列三個數滿足題意 17 2 4 2 0 18 2 4 2 1 20 2 4 2 2 輸入格式 第一行包含兩個整數 x 和 y 接下來...

Acwing 1081 度的數量 數字dp

題目大意 求給定區間 x,y 中滿足下列條件的整數個數 這個數恰好等於 k 個互不相等的 b 的整數次冪之和。例如,設 x 15,y 20,k 2,b 2,則有且僅有下列三個數滿足題意 17 24 20 18 24 21 20 24 22 輸入格式 第一行包含兩個整數 x 和 y,接下來兩行包含整數...

AcWing 連通塊中點的數量

給定乙個包含n個點 編號為1 n 的無向圖,初始時圖中沒有邊。現在要進行m個操作,操作共有三種 c a b 在點a和點b之間連一條邊,a和b可能相等 q1 a b 詢問點a和點b是否在同乙個連通塊中,a和b可能相等 q2 a 詢問點a所在連通塊中點的數量 第一行輸入整數n和m。接下來m行,每行包含乙...