数位dp
文章平均质量分 74
double1994
这个作者很懒,什么都没留下…
展开
-
HDU 3555 Bomb
数位dp,第一发模板题。 #include #include #include #include using namespace std; #define N 25 #define INF 1000000000 int len; char a[100]; long long dp[100][3]; long long dfs(int id, int s, bool f){ if(id >原创 2014-02-27 11:16:54 · 574 阅读 · 0 评论 -
BZOJ 1026 windy数
简单数位dp。数组为三维,分别记录第几位,前一位数字,和状态。相同位不同数字的结果不一样,一开始只开了两维,结果导致出错。和之前的数位dp不一样,本题是考虑两位之间的关系,而不是固定的考虑某一两位数字。比如1 的下一位可以有7种状态,而9 的下一位有8种。无比dt的调了好久。。。 #include #include #include #include #include using na原创 2014-02-28 02:03:10 · 1026 阅读 · 0 评论 -
HDU 4722 Good Numbers
数位dp。出现了几个问题。1.函数返回值应该为LL,错一次2.(dp第二维为前面数的和,可以对10取余,减少时间(之前没改超时))。 感觉dp数组初始化为-1会快点。因为值为0时也可以直接返回,减少递归次数。实际上差不多,因为值为0的不多。 #include #include #include #include #include using namespace std; #defin原创 2014-02-28 02:51:27 · 457 阅读 · 0 评论 -
CF 258B Little Elephant and Elections
数位dp。 先找出含不同数目幸运数字的数量。然后直接暴力求解。 本题是第一次做这种找不同数目特定数字的数位dp,加一个参量。在函数外面加一重循环,指定数目,最后判断是否与预期数目相同即可。 暴力求种类数每一个政党可能选的所有数目是相加的,每一种数目的下的种类与后面政党的所有可能数相乘。一开始全部相乘搞错了。波神是dp过的,10^5,优化了两个数量级。感觉没有太大必要 提交时db了两次,第一是原创 2014-03-01 20:48:45 · 623 阅读 · 0 评论 -
HDU 4734 F(x)
数位dp,写的非常挫。ul为超出部分,fu为缺少部分。当前数位超出或缺少部分大于一定数值可直接返回 #include #include #include #include #include #include using namespace std; typedef long long LL; #define lson l, m, rt << 1 #define rson m + 1,原创 2014-03-25 21:53:38 · 398 阅读 · 0 评论