首页 > TAG信息列表 > hdu2089
HDU2089 不要62(数位DP)
本题是数位DP的入门题,可以用来浅浅了解一下这种强大的计数类工具。 以下代码是采用记忆化递归的写法,效率很高。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int a[20]; 6 int dp[20][2]; 7 8 int dfs(int pos,bool sta,booHDU2089不要62数位DP入门
前言 上学期差不多整个学期都在打各种比赛,几乎没学新算法,因此寒假好好补一波算法,不过数位DP入个门也花了我两天,学习效率还没回来… … 模板题 题目链接 给定一个数字区间[l,r],问你区间内有多少数不含4,也不含连续的62。 题目范围是1e7,可以On预处理+前缀和O1查询,代码就不放了不要62 HDU2089
解题思路: 对于这道题,猛一看到脑袋里出现的就是暴力的做法,当然不能这样,会TLE。 打表是一定要打的。但是如何打的优美就是一个值得思考的问题了。这里我了解到一个很好的找数字里面有无62或4的方法。 我们可以将数字 n 用 itoa 函数转换成字符串,然后用查询子串的方法找 n 中是否HDU2089 不要62 数位dp
网址:https://vjudge.net/problem/HDU-2089 题意: 从给定的范围中求出有几个数的序列中不包括$‘4’$和$‘62’$。 题解: 数位dp板子题,看注释。 AC代码: #include <bits/stdc++.h>using namespace std;int dp[20][2];//第i是j的情况int a[20];int dfs(int pos,int pre,bool lim,bool thdu2089 不要62
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 const int maxn=1e6+5; 6 int n,m; 7 int c[10][10]; 8 int tot,e[10]; 9 template<class t>void red(t &x)10 {11 int w=1;12 x=0;13 c