專櫃 1540 元:SK-II 神仙水 699 元(大紅瓶面霜 963 元)
阿新 • • 發佈:2021-07-21
數位dp就是套模板 ——lwz dalao
模板
( \(\text{dfs}\) 式數位 \(\text{DP}\) ):
ll dfs(ll len,bool Limit,bool zero,ll …… ) // 其他各種條件 { if(len>w) return zero^1; // 注意!!!特判 0 if(!Limit && dp[len][……]!=-1) return dp[len][……]; ll ret=0; for(ll i=0;i<=9;i++) { if(Limit && i>num[len]) break; // 只有在有 Limit 最高位限制是才需要判斷是否高於最高位 if(……) // 根據題目滿足各種條件 } if(!Limit && !zero) dp[len][……]=ret; // 必須同時滿足沒有最高位與前導 0 限制 return ret; } ll solve(ll x) { memset(dp,-1,sizeof(dp)); // 有時要每一次都賦值!!! ll w=0,tmp=x; while(tmp) num[++w]=tmp%10,tmp/=10; // 統計位數 // 有的情況下應在這裡給 dp 陣列賦值 return dfs(w,1,1,……); } memset(dp,-1,sizeof(dp)); // 有時只用賦值一次!!!
例題
P4317 花神的數論題
題意:統計 \(n\) 以內正整數的二進位制中 \(1\) 的個數之積。
列舉 \(k=1\dots \log_2^n\) ,分別計算二進位制中 \(1\) 的個數為 \(k\) 時的數的個數,最後相乘即可。
P2657 [SCOI2009] windy 數
P2602 [ZJOI2010]數字計數
統計 \([1,n]\) 中 \(0\dots 9\) 每一個數位分別出現多少次。
模板吧~