数位dp
baolaoban
我现在什么都没有只有一颗坚决执着的心一颗敢于挑战狂风暴雨的永恒的心
展开
-
hdu 2451 Simple Addition Expression(数位DP )成败在于细节
亚洲区域赛的题,简单的数位DP题,注重细节。任何细节都有可能导致wa,所以没有绝对的水题。把握好细节,此题便A。#include__int64 getans(__int64 s){ __int64 ans=0,tmp=1000000000;//这里最大只能取10^9,取10^10就ce了 if(s==0)return 0;//0单独考虑 while(s<tmp) tm原创 2013-07-12 15:40:46 · 707 阅读 · 0 评论 -
ural 1057(数位dp)
数位dp题,关键是用树的思维去考虑。对于一个数字X,要是能表示成K个B的不同次幂,等价于X在B进制下有且只有K个位上面的数字为一,其他位上的数字都为0。具体读者可以去参考,国家集训队李聪的论文,里面的介绍都很详细。#include#include#define LL long longLL c[60][60];int K,b,a[40];void init()//预处理组合数原创 2013-08-12 17:35:19 · 791 阅读 · 0 评论 -
HDU 3555 Bomb
最近在练数位dp,这题还是wang了一发,这题是基本题,没什么好说的,附上代码。#include#include#define LL unsigned long longLL dp[3][30];LL a[30];void init(){ int i,j,k; dp[0][0]=1; for(i=1;i<22;i++) { dp[0]原创 2013-08-13 12:52:04 · 668 阅读 · 0 评论 -
HDU 2089 不要62
数位dp题,不过暴力打表也是可以过得。可以参考这个博客,里面已经够详细了http://blog.csdn.net/acm_ted/article/details/7895948#include#includeint a[3][10],p[10];void init(){ int i,j,k; a[0][0]=1; for(i=1;i<=8;i++)原创 2013-08-13 10:49:08 · 807 阅读 · 0 评论 -
UESTC 1307 windy数
数位dp,dp[i][j][k], i表示3类数字:1类表示windy,0类表示当前所有windy数,0类表示以0开头的windy但加上前导零就不是windy的数,2类表示除了0类以外的windyj范围0~9,表示以j开头的windy数。k表示位数j表示以0~9开头的数字#include#include#define LL long longint dp[3][11原创 2013-08-14 00:35:59 · 894 阅读 · 0 评论 -
CodeForces 55D Beautiful numbers(数位dp)
数位dp,三个状态,dp[i][j][k],i状态表示位数,j状态表示各个位上数的最小公倍数,k状态表示余数其中j共有48种状态,最大的是2520,所以状态k最多有2520个状态。#include#include#include#define LL long longLL dp[20][50][2520];LL div[50],rdiv[2600],po[30];LL a[4]原创 2013-08-14 23:01:13 · 825 阅读 · 0 评论