
数位DP
CHN_JZ
爆0 forever
展开
-
[数位DP]Hdu 2089——不要62
Ps:博主又水blog,是佳龙大神叫我干的。题目梗概一个数被称为吉利(手动滑稽)当且仅当其不含4和62。多次询问一个区间的吉利的个数。解题思路这题应该算是数位DP的裸题吧。考虑求出一个固定长度出现的吉利数,然后分别考虑每一位就可以了。设f[i][0/1/2]f[i][0/1/2]表示长度为ii的吉利个数,首位为2的吉利个数,不吉利的个数。转移方程就不难求出: f[i][0]=9*f[i-1][原创 2017-08-08 21:30:14 · 661 阅读 · 0 评论 -
[数位DP+矩阵快速幂优化]BZOJ 1875——[SDOI2009]HH去散步
题目梗概给出一张有向图,并给出一个起点和一个终点。求从起点走到终点走t步的方案数。解题思路比较裸的数位DP。f[i][j]f[i][j]表示第步j走到i点的方案数,转移显然。因为这题有重边,所以i改为第i条边的终点。#include<cstdio>#include<cstring>using namespace std;const int maxn=25,maxm=125,tt=45989;原创 2017-08-20 15:47:54 · 647 阅读 · 0 评论 -
[KMP+矩阵快速幂加速]BZOJ 1009——[HNOI2008]GT考试
题目梗概给出一个不吉利数字A1A2...Am(0<=Ai<=9)有M位A1A2...Am(0<=Ai<=9)有M位。求有多少个n位数满足不包含不吉利数字。解题思路读完题目便能想到一个显然的数位DP,F[i][j]F[i][j]表示长度为i,有长度为j的后缀与不吉利数字匹配。考虑如何转移。发现所有失配到j的状态都可以转移,所以要提前用KMP构造,假设我们构造出矩阵T。但是发现还是超时。接下来我们考虑这原创 2017-08-14 20:32:01 · 582 阅读 · 0 评论 -
[数位DP]Hdu 6148——Valley Number
题目梗概求1~n中满足题目要求的数的个数。题目要求:不存在一段下降之后上升的类似山谷的连续位置。解题思路不难想到是数位DP。预处理时f[i][j][k]f[i][j][k]表示长度为i,第一位为j的符合题目要求的个数。其中当k=1k=1表示出现过递增,否则没有。刷答案时注意贴着给出的数做,细节看代码(调了4个小时的血与泪啊)。#include<cstdio>#include<cstring>#i原创 2017-08-25 20:46:52 · 700 阅读 · 0 评论 -
[数位DP]HDU 4507——吉哥系列故事——恨7不成妻
题目梗概如果一个数满足以下三个条件之一,我们称这个数与7有关:1、整数中某一位是7; 2、整数的每一位加起来的和是7的整数倍; 3、这个整数是7的整数倍; 求一个区间和7无关的数字的平方和。解题思路如果这题统计的方式不是平方和,那么就是一道非常经典的数位DP的问题。其实我们要解决的最主要的问题就是添加一个数后如何快速转移平方和。储存每个状态的个数,加和,平方和就解决了这个问题。#include<cs原创 2017-09-27 21:09:16 · 707 阅读 · 0 评论 -
[数位DP] Codeforces 809C Round #415 (Div. 1) C. Find a car
题目梗概有一个1e9∗1e91e9∗1e9的矩阵,记第x行y列的元素为(x,y) (x,y)的值,定义为所有(i,y),(x,j)(1≤i解题思路这种题目一看就是有一个结论。通过一些奇怪的途径我知道了结论,位于(x,y)的数字为((x−1)xor(y−1))+1((x−1)xor(y−1))+1运用容斥原理我们只需要考虑到(1,1)的矩阵的数字和。定义f[i][j][k][t]f[i][j][k原创 2017-09-27 21:36:03 · 547 阅读 · 0 评论 -
[数位DP]Hdu 3555——Bomb
题目梗概求不超过n的含4949的数字的个数。解题思路数位DPSB题。#include<cstdio>#define LL long longusing namespace std;LL n,f[25][15],x;int a[25],len,t;LL DFS(int len,int lst,int pd){ if (len<1) return 1; if (!pd&&f[l原创 2017-10-06 21:28:59 · 727 阅读 · 0 评论