
数位dp
WA_automation
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
windy数
zoj1026 [SCOI2009]windy数 #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <stack> using namespace std; typedef long long LL; int dp[...原创 2018-11-17 10:43:07 · 129 阅读 · 0 评论 -
hdu2089
dp[i][1]表示,i位,第i+1位是6的满足题意的数的数目 dp[i][0]表示,i位,第i+1位不是6的满足题意的数的数目 #include <bits/stdc++.h> using namespace std; typedef long long LL; int N,M; int a[10],dp[10][2]; int dfs(int cur,int is6,int lim...原创 2019-06-13 20:31:47 · 94 阅读 · 0 评论 -
hdu4474
http://acm.hdu.edu.cn/showproblem.php?pid=4474 可以转化为,给出k个个位数,用它们组成的数字,是N的倍数且最小的那个是多少 有k个数字组成的数可以表示为一棵k叉树,每个节点都等于 父节点*10+a[i],a[i]表示k个数中的一个 那么遍历这棵无穷大的树就可以找打满足题目要求的数了,也可能没有,程序就无穷进行下去了。 依旧是这个思路,我们把这棵无穷大...原创 2019-06-03 18:27:20 · 160 阅读 · 0 评论 -
hdu3652
http://acm.hdu.edu.cn/showproblem.php?pid=3652 如果没有限制,参数列表又一样的话,两个dfs跑出来是一样的,所以直接把参数列表对应的值记下来就行了 #include <bits/stdc++.h> using namespace std; typedef long long LL; LL N,dp[15][2][2][13]; int a[...原创 2019-06-16 17:39:04 · 383 阅读 · 0 评论 -
CF 55D Beautiful numbers(数位DP)
http://codeforces.com/problemset/problem/55/D 1-9的最小公倍数为2520,一个数可以用这个数对2520取余得到的数代替,这样就可以做了 另外,一直对数位dp代表的东西感觉很模糊,但是做了一些题之后,好像明白了点做数位dp的方法。首先,写一个dfs暴力算法,然后,发现对于两个个dfs,只要参数是相同的,那么他们跑的结果也相同,那么,我可以用dp[参数1...原创 2019-06-16 23:00:20 · 148 阅读 · 0 评论 -
hdu3709
http://acm.hdu.edu.cn/showproblem.php?pid=3709 这个题和前面一些题套路一样,枚举一下支点就行。 做这个题遇到两个问题,第一次TLE,检查,发现和题解没啥不同,后来想到我习惯对dp初始化为0,如果dp为0则继续搜,其实可能有很多状态就是为零的,应该剪枝,初始化为-1后就MLE了,发现dp用了long long 开太大了 #include <bits...原创 2019-06-16 23:39:19 · 204 阅读 · 0 评论 -
poj3252
http://poj.org/problem?id=3252 这道题没看题解自己做的,没想到对了。。。 总结一下做法,首先写一个暴力dfs,跑跑数据,对了,然后用dp直接记录参数列表值,优化 //#include <bits/stdc++.h> #include <cstdio> #include <cstring> using namespace std; t...原创 2019-06-17 00:10:45 · 166 阅读 · 0 评论