枚举fix所在的位置loc即可,然后数位dp即可

这题要注意一种特殊情况,就是所有位都是0的时候对于每个fix都是成立的

/*
dp[i][j][k]表示前i位确定了平衡点在第j位,前i位和为k
fix需要在开始dfs前就预先确定下来
*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll dp[][][],a[];
ll dfs(ll pos,ll fix,ll sum,ll lim){
if(pos==)return sum==?:;
if(sum<)return ;
if(!lim && dp[pos][fix][sum]!=-)
return dp[pos][fix][sum];
int num=lim?a[pos]:;
ll res=;
for(int i=;i<=num;i++)
res+=dfs(pos-,fix,sum+i*(pos-fix),lim&&i==num);;
if(!lim)dp[pos][fix][sum]=res;
return res;
}
ll calc(ll x){
if(x==-)return ;
ll len=,res=;
while(x){
a[++len]=x%;
x/=;
}
for(int i=len;i>=;i--)
res+=dfs(len,i,,);
return res-len+;
}
int main(){
memset(dp,-,sizeof dp);
int t;
cin>>t;
while(t--){
ll A,B;
cin>>A>>B;
cout<<calc(B)-calc(A-)<<endl;
}
}

hdu3709 数位dp的更多相关文章

  1. HDU3709 Balanced Number (数位dp)

     Balanced Number Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Descript ...

  2. hdu3709(数位dp)

    求区间[l,r]内有多少个数的满足:   选一个位为中点,是的左边的数到该位的距离等于右边的位到该位的距离. 比如4139  选择3位中点, 那么左边的距离是 4 * 2 + 1 * 1 , 右边的距 ...

  3. [暑假集训--数位dp]hdu3709 Balanced Number

    A balanced number is a non-negative integer that can be balanced if a pivot is placed at some digit. ...

  4. HDU3709 Balanced Number 题解 数位DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3709 题目大意: 求区间 \([x, y]\) 范围内"平衡数"的数量. 所谓平衡 ...

  5. 几道数位DP

    因为这几天写的几道数位DP大多都太水..而且也确实没什么好讲所以就扔到一起了. [hdu4772]Good Numbers 要求统计区间内 各位数之和能被10整除 的数的个数. 练手,f[i][j][ ...

  6. 蒟蒻的数位DP专题总结

    BZOJ  1026: [SCOI2009]windy数: 题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1026           d ...

  7. 【BZOJ1662】[Usaco2006 Nov]Round Numbers 圆环数 数位DP

    [BZOJ1662][Usaco2006 Nov]Round Numbers 圆环数 Description 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁 ...

  8. bzoj1026数位dp

    基础的数位dp 但是ce了一发,(abs难道不是cmath里的吗?改成bits/stdc++.h就过了) #include <bits/stdc++.h> using namespace ...

  9. uva12063数位dp

    辣鸡军训毁我青春!!! 因为在军训,导致很长时间都只能看书yy题目,而不能溜到机房鏼题 于是在猫大的帮助下我发现这道习题是数位dp 然后想起之前讲dp的时候一直在补作业所以没怎么写,然后就试了试 果然 ...

随机推荐

  1. tomcat发请求,查看各个环节的耗时时间

    从一台机器给另一台机器tomcat发请求,查看各个环节的耗时时间 - 业精于勤,荒于嬉:行成于思,毁于随. - CSDN博客https://blog.csdn.net/YAOQINGGG/articl ...

  2. JS实现刷新页面后回到记录时滚动条的位置

    window.onbeforeunload = function () { var scrollPos; if (typeof window.pageYOffset != 'undefined') { ...

  3. Andriod App类型简介

    App三种类型与区别 原生应用程序:(Native App) 原生APP是什么?原生APP就是利用Android.iOS平台官方的开发语言.开发类库.工具进行开发.比如安卓的java语言,iOS的ob ...

  4. linux中的&&,|| 与 () 命令

    用&&连接两个命令,前一命令执成功(返回0)下一命令才会执行, 如 date && echo 1 会打印1,而data && echo 2不会打印2 & ...

  5. File相关操作

    文件操作 流关闭方法 public static void closeQuietly(Closeable closable) { if (null == closable) { return; } t ...

  6. 【BZOJ5498】[十二省联考2019]皮配(动态规划)

    [BZOJ5498][十二省联考2019]皮配(动态规划) 题面 BZOJ 洛谷 题解 先考虑暴力\(dp\),设\(f[i][j][k]\)表示前\(i\)所学校,有\(j\)人在某个阵营,有\(k ...

  7. 利用ESLINT进行js 语法检查,以及局部安装时遇到的一些坑

    1)安装ESlint,这里我说一下全局安装,一会我会说我为什么不局部安装. npm install eslint -g 2)创建一个你的项目文件夹,随便起个名字吧,并初始化 cd myapp npm ...

  8. [python]python3.7中文手册

    https://pythoncaff.com/docs/tutorial/3.7.0

  9. Java【第三篇】基本语法之--选择结构

    Java分支语句分类 分支语句根据一定的条件有选择地执行或跳过特定的语句,分为两类: if-else 语句 switch 语句 if-else语句语法格式 if(布尔表达式){ 语句或语句块; } i ...

  10. Java8之方法引用

    一.概述 在学习lambda表达式之后,我们通常使用lambda表达式来创建匿名方法.然而,有时候我们仅仅是调用了一个已存在的方法.如下: Arrays.sort(stringsArray,(s1,s ...