3652专题

【HDU】3652 B-number 数位DP

传送门:【HDU】3652 B-number 题目分析:记录数字对13取模后的状态。 代码如下: #include <cstdio>#include <cstring>#include <algorithm>using namespace std ;typedef long long LL ;#define rep( i , a , b ) for ( int i

hdu 3652 B-number(数位dp)

http://acm.hdu.edu.cn/showproblem.php?pid=3652   主要是2个状态,一个是对13取余情况,一个是第pos位时的前一位是1还是以及有13了还是什么也没有。 这样根据这一状态就可以去枚举下一位了。     #include<bits/stdc++.h>using namespace std;int dp[20][15][3];int a[

HDU 2089 不要62 HDU 3652 B-number(初级数位DP)

HDU 2089 不要62 解题思路 dp[len][mark]中 len 代表当前处理的数位,mark 标记上一位的数字是否为6。 代码实现 #include<iostream>#include<cstdio>#include<cstring>using namespace std;#define maxn 10int dp[maxn][2],num[maxn];int df

HDU 3652 数位DP

题目链接 题意:1 - n中有多少个数 能被13整除 而且包含【13】 数位dp 状态dp[i][j][k][f] 第i位为j 除以13的余数为k f两个状态 0:没有包含13的个数 1:包含13的个数 状态转移方程: f = 1,j != 1 : dp[i][j][k][f] = SUM{ dp[i - 1][p][ (k - (j * 10 ^ (i - 1) ) + 13