如果乙個數各個數字上的數字之和是質數,並且各個數字上的數字的平方和也是質數,則稱它為幸運數。
例如: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 多組測試資料。第一行...