HDU4507 恨7不成妻(數字dp)

2022-03-17 01:25:55 字數 986 閱讀 3778

給定區間[ l , r ](\(1 \leq l < r \leq 1e18\)),求在區間中滿足下列條件的所有數x的平方和:

不存在數字7;不是7的倍數;每一位的數字的和也不是7的倍數

數字dp

狀態:位置i,數對7取模j,各個位的和對7取模(,是否頂上界)

下面的**用記憶化搜尋方式實現,從低位向高位遞進。

已知後面i位數滿足的平方和,再在前面加入乙個數怎麼辦

維護後面i位的平方和pow,由\((a+i)^2\)=\(a^2+2ai+i^2\),已知\(i^2\),那麼再加上\(a^2+2ai\)即可,由於要用到'i',所以還要維護後面i位的和sum。另外,由於後i位可能有很多滿足條件的數,所以還要維護個數cnt

轉移有很多細節,比之前寫的睿(ruo)智數字dp確實難了一些

code:

#include#define n 25

using namespace std;

typedef long long ll;

const ll mod = 1000000007;

int t,a[n],sum;

ll n,m,x,temp[n];

struct node

node(ll c,ll s,ll p) : cnt(c),sum(s),po(p) {}

}f[n][8][8];//無限制lim才能用的記憶化

template void read(t &x)

node dfs(int pos,int wei,int sum,int lim)//在pos填數,位數和,數,頂上界

if(!lim) f[pos][wei][sum]=now;

return now;

}ll dp(ll maxx)

return dfs(sum,0,0,1).po;

}int main()

return 0;

}

HDU 4507 恨7不成妻

problem description 單身 依然單身!吉哥依然單身!ds級碼農吉哥依然單身!所以,他生平最恨情人節,不管是214還是77,他都討厭!吉哥觀察了214和77這兩個數,發現 2 1 4 7 7 7 7 2 77 7 11 最終,他發現原來這一切歸根到底都是因為和7有關!所以,他現在甚至...

HDU 4507 恨7不成妻(數字dp )

題目 求在一定區間內和7無關的數字的平方和。如果乙個整數符合下面3個條件之一,那麼我們就說這個整數和7有關 1 整數中某一位是7 2 整數的每一位加起來的和是7的整數倍 3 這個整數是7的整數倍 基本思想是 x y 2 x 2 2 x y y 2 維護sum和sqrt sum,以及數量cnt來確定用...

HDU 4507 吉哥系列故事 恨7不成妻

數字dp專題 題意 統計在 l,r 區間內所有與7無關數字的平方和。什麼樣的數和7有關呢?如果乙個整數符合下面3個條件之一,那麼我們就說這個整數和7有關 1 整數中某一位是7 2 整數的每一位加起來的和是7的整數倍 3 這個整數是7的整數倍 思路 如果是統計區間內數的個數就比較簡單,那麼我們來考慮一...