AcWing 1082 數字遊戲

2022-09-12 14:42:19 字數 746 閱讀 9404

題目傳送門

#include using namespace std;

const int n = 20;

int a[n]; //數字分離的陣列

int dp[n][n];//dp[pos][pre]表示當前第pos位,pre是指前一位是什麼,這個因素制約了後面的取值個數

/** * 功能:統計[0~pos]之間答案

* @param pos 當前列舉到的數字pos(搜尋的深度)由高到低

* @param pre 前一位是什麼

* @param limit 前幾位的數字是否等於上界的前幾位數字 op(0/1)(限制本次搜尋的數字範圍)

* @return 方案數

*/int dfs(int pos, int pre, bool limit)

int calc(int x)

int main()

#include using namespace std;

const int n = 15;

int f[n][n]; //表示一共有i位,且最高位是j的數的個數

//預處理出不降數的數量陣列f[n][n]

void init()

//計算[0~n]之間不降數的個數

int dp(int n)

//返回結果

return res;

}int main()

Acwing 1082 數字遊戲

數字 dp 問題往往都是這樣的題型,給定乙個閉區間 l,r 讓你求這個區間中滿足某種條件的數的總數。字首和思想,轉化為 f 0,r f 0,l 1 求解。轉化成求 f n 將上限n轉化成10進製 根據題意轉化為k進製,一般是十進位制 列舉從最高位開始列舉n的10進製的每一位,只要該位的取值小於n的1...

題解 AcWing 1082 數字遊戲

link 定義不降數為從左到右各位數字呈非下降關係。求 a,b 之間有多少不降數。1 leq a leq b leq 2 1 把詢問差分,變為詢問 1,n 中不降數的個數。首先,我們可以 dp 出 x 位且最高位為 y 的不降數的個數 設 f 表示 i 位,且最高位為 j 的不降數的個數。計算的時候...

AcWing 1084 數字遊戲 II

題目描述 由於科協裡最近真的很流行數字遊戲。某人又命名了一種取模數,這種數字必須滿足各位數字之和 mod n為 0。現在大家又要玩遊戲了,指定乙個整數閉區間 a.b 問這個區間內有多少個取模數。輸入格式 輸入包含多組測試資料,每組資料佔一行。每組資料報含三個整數 a,b,n。輸出格式 對於每個測試資...