数位dp
huanghongxun
这个作者很懒,什么都没留下…
展开
-
数位DP
找个机会复习一下。。重新写一边题解。。HDU 2089#include <cstdio> #define FOR(i,j,k) for(i=j;i<=k;i++) int dp[16][10]; void init() { int i, j, k; dp[0][0] = 1; FOR(i,1,14) FOR(j,0,9) { dp[i][j]=0;原创 2016-03-29 23:20:45 · 320 阅读 · 0 评论 -
BZOJ 4521|CQOI 2016|手机号码|数位DP
满足长度10位,至少出现3个相邻相同数字,不能同时出现8和4,最高位不为0,在[L,R]内的数字个数。 令dp[前i位][目前位为j][已有连续位k][4和8的状态s][是否已经比原数小t]dp[前i位][目前位为j][已有连续位k][4和8的状态s][是否已经比原数小t]dp[前i位][目前位为j][已有连续位k][4和8的状态s][是否已经比原数小t] 枚举贡献的下一个状态的目前位为b。 ...原创 2016-04-21 11:52:49 · 653 阅读 · 0 评论 -
CodeForces #157(258A|258B|258C|258D|258E)|数位DP|搜索|线段树
258A - Little Elephanh and Bits 小象有一个二进制表示的整数a。现在它要删掉一个二进制位,使这个新整数最大。 输入 输出 样例 input 101 output 11 input 110010 output 11010 题解 显然删去尽量高位的0答案就最大,当然没有0的话随便删个1就好了。 代码 258B原创 2017-06-17 17:03:03 · 624 阅读 · 0 评论