目录

博客:

题目:

1.(题解传送门-待消化)Beautiful numbers CodeForces - 55D

2.【待完成】XHXJ's LIS HDU - 4352 :

3.(没有题解)不要62 HDU - 2089 :

4.(题解传送门-待消化!)Bomb HDU - 3555 :

5.(题解传送门)Round Numbers POJ - 3252 :

6.【题解传送门】Balanced Number HDU - 3709 :

7.(题解传送门-待消化)B-number HDU - 3652 :

8.(题解传送门-待总结)F(x) HDU - 4734 :

9.【待完成】BCD Code ZOJ - 3494 (数位DP+AC自动机):

10.(题解传送门)吉哥系列故事――恨7不成妻 HDU - 4507 :

11.(题解传送门)Balanced Numbers SPOJ - BALNUM :

平时训练遇到的数位DP

1. 2021暑假牛客多校第一场F题(数位DP,好题)


写在前面:

这篇博客写的很随便,因为已经习惯了markdown,这种编辑方式真难受,水完了事,能看懂就行,排版就完全管了。

  • 开始时间:2021-06-07
  • 专题传送门:https://vjudge.net/article/187[kuangbin带你飞]专题1-23
  • 首次接触数位DP,可以先了解一下它的形式,然后变刷题边思考其原理,最后刷完这个专题之后再总结提炼一下它的思想

博客:

  • 我的总结:DP基础知识总结
  • 难度判断: [kuangbin带你飞]专题十五 数位DP
  • 带佬的总结:【数位dp】 Step by Step、[总结]数位统计模板

题目:

1.(题解传送门-待消化)Beautiful numbers CodeForces - 55D

  • 题意:给定两个数l,r(1<=l<=r<=9e18),求[l,r]间漂亮数的个数(漂亮数:能被所有非0数位整除的数)
  • 关键词:数位DP,模板

2.【待完成】XHXJ's LIS HDU - 4352 :

1. 题意题解参考博客:hdu_4352_XHXJ's LIS(数位DP+状态压缩)

2. 严格递增

3.(没有题解)不要62 HDU - 2089 :

  • 题意:统计区间 [a,b] 中不含 4 和 62 的数字有多少个。(0<a<=b<=1e6)
  • 题解:sb题,暴力

4.(题解传送门-待消化!)Bomb HDU - 3555 :

  • 题意:给一个数n(1<=n<=2^63-1),然后求出1~n中49子数和(比如49249=2,490302=1)
  • 关键词:数位DP,模板

5.(题解传送门)Round Numbers POJ - 3252 :

  • 关键词:数位DP,前导0的处理

6.【题解传送门】Balanced Number HDU - 3709 :

  • 提示:枚举中心点
  • 关键词:枚举中心点,数位dp,好题

7.(题解传送门-待消化)B-number HDU - 3652 :

  • 题意:找出1~n有多少个数既含有13又能被13整除。(1<=n<=1e9)
  • 关键词:数位DP,模板,深搜DFS

8.(题解传送门-待总结)F(x) HDU - 4734 :

  • 题意:定义数  ,定义函数 ,然后,给出一个区间 [A,B](0<=A,B<1e9),求区间 [0,B] 内满足F(i)<=F(A) 的 i 的个数。
    多组输入(T<=10000)。
  • 关键词:数位DP,模板题,数位DP总结1

9.【待完成】BCD Code ZOJ - 3494 (数位DP+AC自动机):

1. 涉及AC自动机,等学字符串的时候再来看这里吧

2. 题意参考:zoj 3494(ac自动机+数位dp)

10.(题解传送门)吉哥系列故事――恨7不成妻 HDU - 4507 :

  • 题意:多组输入T<=50,每个区间[L,R]。1<=L<=R<=1e18
  • 关键词:数位DP,dfs,进阶模板题
  • 收获&总结:

11.(题解传送门)Balanced Numbers SPOJ - BALNUM :

  • 关键词:数位DP+好题+排除前置0的干扰!!!

平时训练遇到的数位DP

1. 2021暑假牛客多校第一场F题(数位DP,好题)

  1. 题意:求[L,R]内的友好数的个数,(1<=L<=R<=1e18)。

    1. 友好数的定义:把这个数看作字符串,存在非空子串表示的数能被3整除,那么这个数为友好数,否则不为友好数。
    2. 带有前导0的子字符串被认为是合法的。
  2. 题解:数位DP。
  3. 一些提示(因为懒得梳理):
    1. 首先找dp数组,dp[pos][last0][last1][last2],last0,1,2分别表示以pos数结尾的上一位是否有0,1,2的余数。
    2. 最后判断一个数,如果没有前导0而且last0=0的时候既表示友好数
    3. 如果已经!lead的时候last0为1,那么后面的last0都为1
    4. 具体看代码。总之注意多方面思考
  4. 代码:
#include <bits/stdc++.h>
#define int long long
#define dbg(x) cout << #x << "===" << x << endl
using namespace std;int l, r;
int dp[22][2][2][2];  // dp[pos][last0][last1][last2]
int t[5];
int a[22], cnt;
//前导0无影响
int dfs(int pos, int k0, int k1, int k2, bool lead, bool limit) {if (pos == -1) return k0 && (!lead);if (!limit && !lead && dp[pos][k0][k1][k2] != -1)return dp[pos][k0][k1][k2];int res = 0;int up = limit ? a[pos] : 9;for (int i = 0; i <= up; i++) {t[0] = t[1] = t[2] = 0;t[(0 * 10 + i) % 3] = 1;if (k1) t[(1 * 10 + i) % 3] = 1;if (k2) t[(2 * 10 + i) % 3] = 1;if (!lead && k0) t[0] = 1;res += dfs(pos - 1, t[0], t[1], t[2], lead && (i == 0),limit && (i == a[pos]));}if (!lead && !limit) dp[pos][k0][k1][k2] = res;return res;
}
int solve(int x) {cnt = 0;while (x) {a[cnt++] = x % 10;x /= 10;}return dfs(cnt - 1, 0, 0, 0, true, true);
}signed main() {int T;cin >> T;memset(dp, -1, sizeof(dp));while (T--) {cin >> l >> r;// dbg(solve(r));// dbg(solve(l - 1));int ans = solve(r) - solve(l - 1);// cout << ">>>>";cout << ans << endl;}return 0;
}

某次任务——数位dp分享

1. 收获很多啊。果然将知识讲出来效果最好。

总结:1.1 把数位DP整个过程看作遍历一棵树的过程。

1.2 dp[][]表示的是树上某一个节点能到达的满足条件的叶子节点的数。

1.3 从暴力到数位dp优化的是树上结点的数目,我们把同一层的点权相同的节点合并。

2. 详见我的ppt: 数位dp——某次队内分享任务

3. 理解这一颗树的过程:

“kuangbin带你飞”专题计划——专题十五 数位DP相关推荐

  1. kuangbin带你飞博弈论I专题

    A - Calendar Game 题目链接 大意是两名玩家对于一个给定的日期进行变换操作,一次操作可以将其变为下一天,也可以变为下个月的同一天(若存在),达到2011年11月4日的玩家获胜,问两名玩 ...

  2. “kuangbin带你飞”专题计划——专题十四:数论基础

    写在前面 1.目前还没啥写的.开始时间:2021-05-13(其实博客上看得到该博客创建时间的) 2.上一个专题刷的是网络流(博客总结),属于第一次接触.本来想的是一周特别高效,然后一周略划水,结果是 ...

  3. kuangbin带你飞专题合集

    题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...

  4. kuangbin带你飞 专题1-23 题单

    kuangbin大神,对于打过ACM比赛的ACMer,无人不知无人不晓. 在此,附上vjudge平台上一位大神整理的[kuangbin带你飞]专题目录链接. [kuangbin带你飞专题目录1-23] ...

  5. [kuangbin带你飞]专题十二 基础DP1 题解+总结

    kuangbin带你飞:点击进入新世界 总结: 简单dp,最近在做,持续更新. 文章目录 总结: 1.Max Sum Plus Plus 2.Ignatius and the Princess IV ...

  6. (2021-07-14~)“kuangbin带你飞”专题计划——专题十三:基础计算几何

    目录 前言 参考博客 自己总结的东西: 难度判断? 题目 1.[TOYS POJ - 2318 ](解决) 2.[Toy Storage POJ - 2398 ](解决) 3.[Segments PO ...

  7. 解题报告:【kuangbin带你飞】专题四 最短路练习题

    目录 A. POJ - 2387 TiltheCowsComeHomeTil\ the\ Cows\ Come\ HomeTil the Cows Come Home--------(最短路模板题)[ ...

  8. 【kuangbin带你飞】专题六 最小生成树

    [kuangbin带你飞]专题六 最小生成树 A.POJ - 1251 Jungle Roads (最小生成树模板) The Head Elder of the tropical island of ...

  9. [kuangbin带你飞]专题五 并查集 题解+总结

    kuangbin带你飞:点击进入新世界 总结: 本人算是初学者中的初学者,欢迎交流~ 并查集的接触过的不多,大概只有普通并查集,带权并查集,种族并查集,传说中的可持续化并查集只是听说过还没有接触,不过 ...

  10. 线段树开新坑:kuangbin带你飞

    写在最前面的废话 这里I以前的题是暑假刚刚开始的时候在家写的,然后多校一波就荒废了 9月开头回家一波,重新填坑,= =,kuangbin带你飞的pdf,这才一半题,后面还有一波,蓝瘦,慢慢写吧,不写题 ...

最新文章

  1. iMeta期刊推特官方帐号@iMetaJournal上线
  2. 网络编程Socket之UDP
  3. c++ 交换变量实践
  4. shell 中引用参数总结
  5. 一不小心就让Java开发者踩坑的fail-fast是个什么鬼?
  6. 39. 组合总和020(思路+详解)
  7. 手机站的view.php,织梦网站文章内容页动态地址plus/view.php路径修改
  8. The Illustrated Transformer (Transformer可视化解读自译笔记)
  9. TensorFlow 教程 --教程--2.5TensorFlow运作方式入门
  10. c++ 多线程 垃圾回收器_JavaSE基础代码(3)--JavaSE程序入口,JDK,JRE,JVM垃圾回收器的关系与作用...
  11. R语言将一列分解为多列
  12. android中FileObserver的运用
  13. Oracle优化新常态 前半生
  14. ipad学计算机二级,‎App Store 上的“计算机等级考试一级最新题库”
  15. java地铁售票机系统_Java_地铁购票系统
  16. rman备份遇到的设置rman导致数据库变慢的原因
  17. android 闪屏动态界面,Android 实现闪屏
  18. Magic Mouse 苹果鼠标移动速度改快的方法
  19. Oracle日期格式转换 to_date,to_char,to_timetamp 相互转换
  20. 9款免费的Windows远程协助软件

热门文章

  1. activex 控件 过期_IE浏览器阻止过期ActiveX控件或将影响网银的使用-银行控件蓝屏...
  2. 开机需要手动启动无线
  3. 沸腾新十年 | 中国语音产业江湖和科大讯飞的前半生
  4. Flash player 10(FLEX 4)的安全沙箱机制
  5. 应用软件,操作系统,CPU的关系
  6. 黑马程序员—黑客与画家——工作3年再转型(附赠大绝招)
  7. 软件测试简历上实战项目:开源项目部署--litemall商城
  8. 2012年中国40位40岁以下的商界精英榜单
  9. 哈工大2020春计算方法实验报告
  10. Tomcat8下载及安装配置教程(官网)