fzu 2113 Jason的特殊愛好 數字dp

2021-07-11 08:28:09 字數 818 閱讀 2674

先進行預處理

s[pos][val]

s[3][5]表示 0~500的1的個數

所以s[3][5]+=s[3][4](0~400); 

s[i][j]+=s[i][j-1];

s[3][5]+=s[2][9]+ss[1][9](0~99);

for(int k=i-1;k>=1;--k)

s[i][j]+=s[k][9];

特殊的當 j==1時,s[i][j]+=1;

當j==2時,s[i][j]+= 10^i-1;

查詢:0~b 1的個數- 0~a 1的個數

如896 = 0~6 1的個數 +0~90 1的個數 +0~800 1的個數

特別的 當某位為1的時候

如 1819= 0~9 + (0~10+ 9) +( 0~800) +(0~1000 +819);

其中原理自己體會體會吧。

#include #include #include #include #define max_size 20

using namespace std;

typedef long long llint;

llint s[max_size][max_size];

void init()

s[i][j]+=s[i][j-1];

} }}llint sum(llint x)

else s+=s[i++][y%10];

y/=10;

} return s;

}int main()

return 0;

}

練習2 11 練習2 20

1.練習2.11 define mul interval x y let x1 lower bound x x2 upper bound x y1 lower bound y y2 upper bound y let zzx and x1 0 x2 0 zzy and y1 0 y2 0 fzx a...

2 1 1 變數和常量

大綱目錄 程式必須記錄三個基本屬性 例 int x int 型別 x 儲存空間的名稱 x 100 大小 double y double 型別 y 儲存空間的名稱 y 100.0 大小 變數是對某個事務中的變化的量的建模,所以變數名要有一定的含義,簡介明了,易於區分,便於讀懂。比如變數表示差旅費,則變...

FZU 單詞問題

給出乙個完整的句子,這個句子中不包含不可見字元或者空格,於是在這個句子中有許多不同的單詞。乙個單詞是指一串連續的最長的英文本母 大寫或小寫 例如 abc 中,abc 就是乙個單詞,而 ab bc 都不算單詞。輸入包含多組資料 輸入資料第一行是乙個句子,只包含可見字元 不包含空格 句子長度不超過 10...