
数位dp
_zidaoziyan
这个作者很懒,什么都没留下…
展开
-
HDU3652 B-number
数位dp#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <cstdlib>#includ原创 2015-07-17 12:37:40 · 395 阅读 · 0 评论 -
Hdu 5803 Zhu’s Math Problem(非记忆化数位dp)
思路: 数位dp,我们对每个数都拆分为二进制,对于数的每一位都进行考虑,可以发现 如果a+c-b-d<=-2则一定不满足,a+c-b-d有用的值肯定小于等于2,对另外一个不等式也是如此考虑 需要注意的一点的本题采用非记忆化搜索,因为有四个上界,四个都不为上界的情况会比较少#include<bits/stdc++.h>using namespace std;const in原创 2016-11-07 21:40:31 · 506 阅读 · 0 评论 -
Hdu 5921 Binary Indexed Tree(长春数位dp)
题意:用树状数组维护一个序列,在给区间[l,r]加上一个t的时候,要给[1,r]加上t,给[1,l−1]减去t,两次操作后值真正发生变化的节点个数就是这一次区间修改的代价,现在要修改每一个[1,n]的子区间,求总代价 对10^9+7取模后的结果。#include<bits/stdc++.h>using namespace std;const int MOD=1e9+7;int dig原创 2016-11-07 20:30:19 · 715 阅读 · 0 评论 -
ural 1057 Amount of Degrees(数位统计)
求给定区间[X,Y]中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和。(1<=X<=Y<=2^31-1,1<=K<=20,1<=B<=10) 思路: ans=Count(Y)-Count(X-1) 若一个数中有一个B进制的系数大于1->将这之后的系数均置为1#include<cstdio>#include<cstring>#include<iostr原创 2016-11-07 14:03:29 · 372 阅读 · 0 评论 -
BZOJ 1833: [ZJOI2010]count 数字计数(在[a,b]中的所有整数中,每个数码(digit)各出现了多少次)
题意: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 思路: 一维数位dp,需保留之后的数的总方案数,以及每个digit的,注意前导0的特判#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;int dig[原创 2016-11-05 21:47:41 · 1332 阅读 · 0 评论 -
Hihocoder 1259 :A Math Problem(2015 北京区域赛 K,二进制的数位dp)
提交传送门:Hihocoder 1259 :A Math Problem题意传送门:UVA Live 7271 A Math Problem 题意:f[1]=1,3∗f[n]∗(f[2∗n]+1)=f[2∗n]∗(1+3∗f[n]),f[2∗n]<6∗f[n],题意:f[1]=1,3*f[n]*(f[2*n]+1)=f[2*n]*(1+3*f[n]),f[2*n]<6*f[n], 定原创 2016-08-12 19:59:44 · 957 阅读 · 0 评论 -
HDU3555Bomb(记忆化搜索)
题目与不要62相似,数位dp#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <cstdli原创 2015-07-16 20:37:17 · 817 阅读 · 0 评论 -
HDU3652.B-number
思路:记忆化搜索#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <cstdlib>#in原创 2015-07-17 14:31:35 · 417 阅读 · 0 评论 -
HDU3943.K-th Nya Number
首先没有把要求输入K_i用long long保存,结果无限超时 第二的话数组开小了,以为2^63约等于10^9,T^T 题目思路就是数位dp加二分#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <原创 2015-07-17 14:28:38 · 703 阅读 · 0 评论 -
1026: [SCOI2009]windy数
数位dp,dp[i][j]中i,j分别表示位数和最高位数字#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<set>#include<cmath>#include<map>#include<queue>using namespace std;int dp[15][15];//原创 2015-07-17 09:56:02 · 760 阅读 · 0 评论 -
HDU2089 不要62(数位dp)
#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <cstdlib>#include <i原创 2015-07-16 10:17:48 · 640 阅读 · 0 评论 -
sgu 390 购票(上下界数位dp)
有一位售票员给乘客售票。对于每位乘客,他会卖出多张连续的票,直到已卖出的票的编号的数位之和不小于给定的正数K。然后他会按照相同的规则给下一位乘客售票。 初始时,售票员持有的票的编号是从L到R的连续整数。请你求出,售票员可以售票给多少位乘客。 数据规模:1 ≤ L ≤ R ≤ 10^18,1 ≤ K ≤ 1000。 思路: 此题需要上下界进行数位dp,且需要从小的开始放 dp原创 2016-11-08 17:05:08 · 552 阅读 · 0 评论