51nod 1230 幸運數 數字dp

2021-08-10 02:23:51 字數 814 閱讀 3913

如果乙個數各個數字上的數字之和是質數,並且各個數字上的數字的平方和也是質數,則稱它為幸運數。

例如:120是幸運數,因為120的數字之和為3,平方和為5,均為質數,所以120是乙個幸運數字。

給定x,y,求x,y之間( 包含x,y,即閉區間[x,y])有多少個幸運數。

1 <= t <= 10000,1 <= x <= y <= 10^18

一開始想的是設f[i,0/1,j,k]表示做到第i位,是否卡著上界,每位和為j,每位平方和為k的方案數。

不難發現如果每次詢問都dp一次的話顯然會炸。

我們可以寫成遞迴版,設f[i,j,k]表示做到第i位,不考慮上界,每位和為j,每位平方和為k的方案數。

如果當前卡著上界的話就單獨算。因為卡著上界的數量比較小,所以跑的很快。

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

int tot,prime[1500],a[20];

bool not_prime[1500];

ll f[20][170][1460];

void get_prime(int n)

}}ll dfs(int x,int y,int z,int lim)

ll solve(ll n)

int main()

return

0;}

51Nod 幸運數字(打表)

1043 幸運號碼 基準時間限制 1 秒 空間限制 131072 kb 分值 20難度 3級演算法題 1個長度為2n的數,如果左邊n個數的和 右邊n個數的和,那麼就是乙個幸運號碼。例如 99 1230 123312是幸運號碼。給出乙個n,求長度為2n的幸運號碼的數量。由於數量很大,輸出數量 mod ...

51 nod 數數字(簡單模擬)

1770 數數字 基準時間限制 1 秒 空間限制 262144 kb 分值 20 難度 3級演算法題 統計一下 aa a aa a n個 a b 的結果裡面有多少個數字d,a,b,d均為一位數。樣例解釋 3333333333 3 9999999999,裡面有10個9。input 多組測試資料。第一行...

51nod1770 數數字 規律

1770 數數字 基準時間限制 1 秒 空間限制 262144 kb 分值 20 難度 3級演算法題 統計一下 aa a aa a n個 a b 的結果裡面有多少個數字d,a,b,d均為一位數。樣例解釋 3333333333 3 9999999999,裡面有10個9。input 多組測試資料。第一行...