题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3709

题意:给你一个区间,让你找平衡数的个数

题解:设dp[i][j][k]为前i位以第j位为支撑点的力矩和为k的方案数,注意的是0,00,000这些也是平衡数,所以要减掉一个len长度

 #include<cstdio>
#include<cstring>
#define F(i,a,b) for(LL i=a;i<=b;i++)
typedef long long LL; LL t,n,m,dp[][][],dig[],len,an,an2,ii; LL dfs(int pos,int now,int f,bool inf){
if(!pos)return !f;
if(f<)return ;
if(!inf&&dp[pos][now][f]!=-)return dp[pos][now][f];
LL end=inf?dig[pos]:,ans=;
F(i,,end)ans+=dfs(pos-,now,f+(pos-now)*i,inf&&(i==end));
if(!inf)dp[pos][now][f]=ans;
return ans;
} int main(){
memset(dp,-,sizeof(dp));
scanf("%lld",&t);
while(t--){
scanf("%lld%lld",&n,&m),n--;
for(len=;n;n/=)dig[++len]=n%;
for(an=,ii=len;ii>;ii--)an+=dfs(len,ii,,);an-=len;
for(len=;m;m/=)dig[++len]=m%;
for(an2=,ii=len;ii>;ii--)an2+=dfs(len,ii,,);
printf("%lld\n",an2-len-an);
}
return ;
}

hdu_3709_Balanced Number(数位DP)的更多相关文章

  1. 多校5 HDU5787 K-wolf Number 数位DP

    // 多校5 HDU5787 K-wolf Number 数位DP // dp[pos][a][b][c][d][f] 当前在pos,前四个数分别是a b c d // f 用作标记,当现在枚举的数小 ...

  2. hdu 5898 odd-even number 数位DP

    传送门:hdu 5898 odd-even number 思路:数位DP,套着数位DP的模板搞一发就可以了不过要注意前导0的处理,dp[pos][pre][status][ze] pos:当前处理的位 ...

  3. codeforces Hill Number 数位dp

    http://www.codeforces.com/gym/100827/attachments Hill Number Time Limits:  5000 MS   Memory Limits: ...

  4. HDU 5787 K-wolf Number 数位DP

    K-wolf Number Problem Description   Alice thinks an integer x is a K-wolf number, if every K adjacen ...

  5. Fzu2109 Mountain Number 数位dp

    Accept: 189    Submit: 461Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description One ...

  6. HDU 3709 Balanced Number (数位DP)

    Balanced Number Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  7. beautiful number 数位DP codeforces 55D

    题目链接: http://codeforces.com/problemset/problem/55/D 数位DP 题目描述: 一个数能被它每位上的数字整除(0除外),那么它就是beautiful nu ...

  8. FZU - 2109 Mountain Number 数位dp

    Mountain Number One integer number x is called "Mountain Number" if: (1) x>0 and x is a ...

  9. BNU 13024 . Fi Binary Number 数位dp/fibonacci数列

    B. Fi Binary Number     A Fi-binary number is a number that contains only 0 and 1. It does not conta ...

随机推荐

  1. 激活JetBrains PhpStorm 2016.3.2和JetBrains WebStorm 2016.3.2

    1.打开 phpstorm 2.在激活界面选择license server 在线激活方式 输入:http://idea.imsxm.com/ 3.激活成功,打开使用

  2. winsock编程IOCP模型实现代码

    winsock编程IOCP模型实现代码 话不多说,上代码.借鉴<windows核心编程>部分源码和CSDN小猪部分代码. stdafx.h依赖头文件: #include <iostr ...

  3. 使用Pycharm 安装三方库

    除了使用easy_insatll和pip工具安装Python第三方库外还可以使用pycharm安装Python第三方库,步骤如下: 1.打开pycharm,点击File,再点击settings 2.点 ...

  4. 分布式版本控制系统Git-----1.Git 初识

    开始工作咯,师傅让我开始学习Git.刚接触我是懵逼的,"分布式版本控制系统"啥玩意啊这是,大家可不能从字面意思上理解啊,刚开始,版本控制么,我以为是团队合作的时候把开发工具.JDK ...

  5. MVC创建

    [1]创建ASP.NET_MVC应用程序   1>新建项目>web>Visual Studio 2012>ASP.NET MVC4 Web应用程序   2>填写名称,位置 ...

  6. HomeBrew 安装 PHP7.1(开发笔记)

    HomeBrew 安装 PHP7.1 $ brew update $ brew tap homebrew/dupes $ brew tap homebrew/php $ brew update $ b ...

  7. Python Data Visualization Cookbook 2.2.2

    import csv filename = 'ch02-data.csv' data = [] try: with open(filename) as f://用with语句将数据文件绑定到对象f r ...

  8. Hadoop查看目录文件大小的脚本

    hadoop fs -du / | awk '{ sum=$1 ;dir2=$3 ; hum[1024**3]="Gb";hum[1024**2]="Mb";h ...

  9. Android 消息传递之Bundle的使用——实现object对象传输(一)

    UI更新--消息处理massage 对于安卓内部消息得处理,实现对界面UI得更新操作,不能在线程中直接更新ui.至于为什么不能,在学习安卓开发的时候,在线程中操作会使程序崩溃. 为什么,可以看看诸多大 ...

  10. awstats 日志分析

    /tmp/awstats/awstats.ezrydel.com.conf LogFile="/usr/local/apache/domlogs/ezrydel.com" php版 ...