数位dp
文章平均质量分 78
谢符宝
业精于勤,荒于嬉行成于思,毁于随。
展开
-
hdu4734(数位DP)
题意:For a decimal number x with n digits (AnAn-1An-2 ... A2A1), we define its weight as F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1. Now you are given two numbers A and B, please cal原创 2014-01-21 20:16:41 · 653 阅读 · 3 评论 -
hdu2089(数位dp)
题意:求区间内不含62和4的数的个数;解法:数位dp。int dfs(int pos,int pre,bool limit,bool have),pos表示dp到的数位位置,pre表示前一个数位的数字,limit表示到此时数是否有下降(此位取数字是否受限制的意思),have表示之前是否有62;4的排除是靠在每次枚举下一位i时不取4即可;每个case的dp值都是一样的,所以只需要计算一遍原创 2014-06-02 17:54:55 · 823 阅读 · 0 评论 -
hdu3652(数位dp)
题意:求1-n(n解法:数位dp。LL dp[pre][now][have][iflow][rem]记录着第pre位为now,have表示前边是否出现过13,iflow表示dp过程否有降低,rem表示后续需要的余数是多少。代码:/******************************************************* author:xiefubao原创 2014-05-14 12:09:14 · 758 阅读 · 0 评论 -
poj2282(数位dp)
题意:计算a-b中各个数字出现的个数;解法:数位dp(思想都是先算1-b的个数,然后减掉1-a中的个数),1-9数字的计算和前边计算1的那一篇数位dp差不多,计算0时候要加一维表示前缀是否全是0;代码:/******************************************************* author:xiefubao*****************原创 2014-05-12 15:53:40 · 1348 阅读 · 0 评论 -
poj3286 数位dp
题意:求a-b之间的数0出现的总个数;解法:compute(int k)是求0-k的0出现的个数;dp[i][j][allZ][equ]表示第i位取j,allZ表示前边是否全部填充为0,equ表示前边是否与原数的高位全部相等(即决定此位的限制上界);调了好久,完全是模仿dfs的模版乱套,还是不熟练,实在欠练!代码:/*****************************原创 2014-03-07 00:10:20 · 767 阅读 · 0 评论 -
数位dp(求1-n中数字1出现的个数)
题意:求1-n的n个数字中1出现的个数。解法:数位dp,dp[pre][now][equa] 记录着第pre位为now,equa表示前边是否有降数字(即后边可不可以随意取,true为没降,true为已降);常规的记忆化搜索代码:/******************************************************* author:xiefubao原创 2014-05-11 09:24:12 · 2673 阅读 · 0 评论 -
hdu3709(求区间内平衡数的个数)数位dp
题意:题中平衡数的定义: 以一个位置作为平衡轴,然后左右其他数字本身大小作为重量,到平衡轴的距离作为全职,实现左右平衡(即杠杆原理平衡)。然后为区间[x,y]内平衡数的个数。 (0 ≤ x ≤ y ≤ 1018)解法:数位dp。如果一个数的平衡数,那么它的平衡轴位置是确定的。原来一直尝试数位dp在dfs时候列举平衡轴的位置,后来才意识到可以提前枚举平衡轴位置,然后再dfs,这样比较好写原创 2014-05-14 17:38:26 · 1267 阅读 · 0 评论 -
hdu 3555(数位dp裸题)
题意:求1-n中有多少个数含有49;解法:应该是数位dp最简单的题目了吧。学了dfs版的写法,第一次自己敲了出来,几乎是在默写,感觉还不熟练。dp[pos][pre][flag] 表示在后pos位,第pos+1位的数字为pre,前面是否出现49的标记为flag(1为出现过, 0 为未出现过)的数字个数。dfs的细节要自己体会,还要多敲多练;代码:/*****************原创 2014-03-07 00:04:16 · 652 阅读 · 0 评论 -
ural1057(数位dp)
1057. Amount of DegreesTime limit: 1.0 secondMemory limit: 64 MBCreate a code to determine the amount of integers, lying in the set [X;Y] and being a sum of exactlyK different integer de原创 2014-01-22 00:51:05 · 997 阅读 · 0 评论 -
hihocoder1033(数位dp)
题目:/******************************************************* @author:xiefubao*******************************************************/#pragma comment(linker, "/STACK:102400000,102400000")#include #原创 2015-05-22 19:53:56 · 1214 阅读 · 0 评论