云梦泽的命定纠缠:当冷面大司命遇上顽皮少司缘,这一场“繁衍”契约谁先动了心?

核心内容摘要

极速通往二次元乐园:歪歪漫画页面首登录全攻略,解锁私藏追漫姿势
《WhiteBlue》:当纯白与湛蓝交织,一场关于记忆与救赎的视听盛宴

91资源在线播放最新电影免费观看:点亮你的娱乐时光

直接放一篇比较有代表性的数位dp学习的题目链接和标准的题解代码由于题解代码较少就懒得解释更多了关键就是从高位到低位的状态dfs➕记忆化➕对区间答案拆解为前缀差https://www.luogu.com.cn/problem/P13085#include iostream #include vector #include cmath #include cstring #include algorithm using namespace std; typedef long long ll; // dp[pos][pre] // pos: 当前处理到的位数 // pre: 上一位填写的数字 (0-

// 因为 pre 有可能是前导零状态或者初始状态我们在记忆化时通常只记录 leadfalse 的情况 ll dp[20][15]; int a[20]; // 存储把数字拆解后的每一位 // dfs 函数 // pos: 当前位数 // pre: 上一位数字 // lead: 是否处于前导零状态 (true 表示前面全是

// limit: 最高位限制 (true 表示当前位受原数限制) ll dfs(int pos, int pre, bool lead, bool limit) { // 递归边界填完了所有位说明找到了一种合法方案返回 1 if (pos

return 1; // 记忆化搜索 // 如果没有最高位限制且不是前导零状态且该状态已经计算过直接返回 if (!limit !lead dp[pos][pre] ! -

return dp[pos][pre]; // 当前这一位能填的最大数字 // 如果受 limit 限制只能填到 a[pos]否则能填到 9 int up limit ? a[pos] : 9; ll ans 0; // 枚举当前位可能填的所有数字 i for (int i 0; i up; i) { // 判断当前填的 i 是否合法 // 情况 1: 之前全是前导零 if (lead) { if (i

{ // 如果当前继续填 0则继续保持前导零状态pre 不更新(或者传个特殊值这里习惯用-2代表无前驱) // limit 更新如果本来受限且当前填了上限(0up)则继续受限 ans dfs(pos - 1, -2, true, limit (i up)); } else { // 如果当前填了非 0前导零状态结束。

// 因为是第一位有效数字不需要和上一位比较差值直接合法 ans dfs(pos - 1, i, false, limit (i up)); } } // 情况 2: 之前已经有有效数字了 else { // 必须满足题目条件相邻数字之差 2 if (abs(i - pre)

{ ans dfs(pos - 1, i, false, limit (i up)); } } } // 记录状态仅在无限制且非前导零时记录因为 limit 和 lead 特殊情况复用率低 if (!limit !lead) dp[pos][pre] ans; return ans; } // 计算 [1, x] 之间的 Windy 数 ll solve(ll x) { int len 0; // 把数字 x 拆解存入数组比如 123 - a[3]1, a[2]2, a[1]3 while (x) { a[len] x % 10; x / 10; } // 记忆化数组初始化为 -1 // 注意如果是多次询问且 dp 状态与 limit/lead 无关其实 dp 数组只需要 memset 一次。

// 但为了保险和逻辑简单这里每次 solve 都清空实际上这题 dp 数组可以复用放在全局只初始化一次更优 // 本题数据量较小每次初始化也没问题若 TLE 可移到 main 函数外 memset(dp, -1, sizeof(dp)); // 从最高位 len 开始搜pre 初始设为 -2一个不可能干扰

判断的数 return dfs(len, -2, true, true); } int main() { ll a, b; cin a b; // 答案是 [1, b] 的数量 减去 [1, a-1] 的数量 cout solve(b) - solve(a -

endl; return 0; }

七色猫9.1成年猫-七色猫9.1成年猫应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123