煩人的數學作業 數字dp

2022-05-11 02:57:40 字數 906 閱讀 4943

很明顯,本題是數字dp

solve

我們定義\(f[i][j](1<=i<=19,0<=j<=9)\)表示i位數字以j為最高位的數字的數字和

當j為0時表示\(\sum f[i-1][j](0<=j<=9)\)

我們需要預處理出f陣列

很明顯,初值可以是這樣賦:f[1][x]=x;(0<=x<=9)

我們考慮f[i][j]其實是在f[i-1][j]後面加上0~9的數字

因此很容易想出轉移方程: f[i][j]=(f[i][0]+j*power(i-1))%mod;

其中mod是模數,power(x)表示10的x次方

統計答案實際上就是求\(getans(r)-getans(l-1)\)

getans表示1~r所有數字的數字和

getans的求法

long long getans(long long x)

code

#includeusing namespace std;

int t;

long long f[25][10],sqd[25],ll,rr;

long long mod=1000000007;

int getlen(long long x)//求位數

return n;

}long long getist(long long x)//求最高位

long long power(int x)//求10的x次方

long long getans(long long x)//求1~x的數字和

int main()

scanf("%d",&t);

while(t--)

return 0;

}

洛谷 P4999 煩人的數學作業

題目鏈結 這道題從下午一來就開始寫,一直寫到 4 00 終於寫完了,累死我辣,但是做出來的感覺還是很蘇服的 本題思路 按位考慮 模擬 題目大意是很好理解的,就是算從l到r的所有數中每個數的每一位數字加起來的和。如果你從 l 到 r 這樣乙個個列舉的話,就是暴力了,不知道有沒有分 思路分析 既然是模擬...

luogu1762 偶數(數學 數字DP)

luogu1762 題目描述 給定乙個整數n,求楊輝三角形前n項對1000003取模後的結果。輸入格式 一行乙個整數n,表示行數 輸入格式 一行乙個整數,表示答案 輸入樣例 6輸出樣例 6解析 楊輝三角形第n行第m列的數為 c 要求前n行的偶數個數,就是求前n行的奇數個數,再用總數減去奇數的個數。那...

NYOJ166 小珂的數學題 數字dp

分析 這道題的做法應該很多,我看到有人用組合數學做的 真是大牛啊 我以開始也想用組合數學做,但是找了乙個小時也沒弄出來。然而發現用數字dp 記憶化搜尋 可以做的。dp d num 表示 第d位上不大於num的種類的個數 記憶化搜尋是傳三個引數 d,num,f 標記高位是否為滿,數字dp的思想所要求的...