洛谷P2602 ZJOI2010 數字計數 題解

2022-01-10 19:13:06 字數 930 閱讀 3918

很裸的一道數字dp的板子

定義f[當前列舉到的數字][當前數字之前的答案][列舉的數字]

其它的套板子就可以了,要注意一下字首0的判斷

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8 typedef long

long

ll;9 ll f[20][20][20],num[30

];10

ll a,b;

11ll asd(ll now,ll tot,ll ask,ll jud,ll zer)

15if(f[now][tot][ask]!=-1 && jud==0 &&(ask || !zer))

18 ll mmax=9;19

if(jud==1) mmax=num[now];

20 ll anss=0;21

for(ll i=0;i<=mmax;i++)

24if(!jud && (ask || !zer)) f[now][tot][ask]=anss;

25return

anss;26}

27ll solve(ll xx,ll ask)

35return asd(cnt-1,0,ask,1,1

);36}37

intmain()

44 printf("\n"

);45

return0;

46 }

view code

P2602 ZJOI2010 數字計數

題目描述 給定兩個正整數a和b,求在 a,b 中的所有整數中,每個數碼 digit 各出現了多少次。輸入格式 輸入檔案中僅包含一行兩個整數a b,含義如上所述。輸出格式 輸出檔案中包含一行10個整數,分別表示0 9在 a,b 現了多少次。輸入輸出樣例 輸入 1 1 99 輸出 1 9 20 20 2...

P2602 ZJOI2010 數字計數

p2602 題目描述 給定兩個正整數 a 和 b,求在 a,b 中的所有整數中,每個數碼 digit 各出現了多少次。輸入格式 僅包含一行兩個整數 a,b,含義如上所述。輸出格式 包含一行十個整數,分別表示 0 9 在 a,b 現了多少次。1 99 9 20 20 20 20 20 20 20 20...

洛谷p2602 數字計數

題目描述 給定兩個正整數a和b,求在 a,b 中的所有整數中,每個數碼 digit 各出現了多少次 一開始想歪了,想去列舉每一位,然後統計每一位的情況。轉念一想,數字dp是統計 a,b 內符合條件的數字的個數。換一種方法,對key 0,9 統計含1個key,2個key len len為數字的長度 個...