題意:求區間【l,r】滿足以下性質:(1)數字中沒有7,(2)數字和不被7整除,(3)數字本身不被7整除 的所有數字的平方和
先記錄乙個毒瘤錯誤。。。感覺自己好不會設狀態啊。數字dp的狀態自己都不知道是不是對的能不能轉移qaq。
錯誤**:
1 #include2 #include3 #include4view code#define ll long long
5using
namespace
std;67
int a[20
];8 ll dp[20][200][10];9
const
int mod = 1e9+7;10
11 ll dfs(int pos, int sum, ll n, bool
lim)
17if (!lim && dp[pos][sum][n%7] != -1) return dp[pos][sum][n%7
];18 ll ans = 0;19
int r = lim ? a[pos] : 9;20
for (int i = 0; i <= r; i++)
24if (!lim) dp[pos][sum][n%7] =ans;
25return
ans;26}
2728
ll solve(ll x)
34return dfs(pos-1, 0, 0, 1
);35}36
37int
main()
46return0;
47 }
ac**:
1 #include2 #include3 #include4#define ll long long
5using
namespace
std;67
int a[20
];8 ll p[30];9
const
int mod = 1e9+7;10
11struct
sta14 }dp[20][10][10
];15
16 sta dfs(int pos, int sum, int n, bool
lim)
29if (!lim) dp[pos][sum][n] =ans;
30return
ans;31}
3233
ll solve(ll x)
39return dfs(pos-1, 0, 0, 1
).ans;40}
4142
intmain()
53return0;
54 }
HDU 4507 鬼畜級別的數字DP)
題目大意 求指定範圍內與7不沾邊的所有數的平方和。結果要mod 10 9 7 鬼畜 元凶 解題思路 與7不沾邊的數需要滿足三個條件。不出現7 各位數和不是7的倍數 這個數不是7的倍數 這三個條件都是基礎的數字dp。但是這題要統計的不是符合條件個數,而是平方和。也就是說在dp時候,要重建每個數,算出平...
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來確定用...
HDU4507 恨7不成妻(數字dp)
給定區間 l r 1 leq l r leq 1e18 求在區間中滿足下列條件的所有數x的平方和 不存在數字7 不是7的倍數 每一位的數字的和也不是7的倍數 數字dp 狀態 位置i,數對7取模j,各個位的和對7取模 是否頂上界 下面的 用記憶化搜尋方式實現,從低位向高位遞進。已知後面i位數滿足的平方...