2018.09.07 Amount of degrees(数位dp)

时间:2023-02-10 17:43:52

描述

求给定区间[X,Y]中满足下列条件的整数个数:这个数恰好等于K个互不相等的B的整数次幂之和。

例如,设X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:

17 = 24+20,

18 = 24+21,

20 = 24+22。

输入

第一行包含两个整数X和Y。接下来两行包含整数K和B。

输出

只包含一个整数,表示满足条件的数的个数。

样例输入

15 20

2

2

样例输出

3

提示

数据规模:1 ≤ X ≤ Y ≤ 2^31−1,1 ≤ K ≤ 20, 2 ≤ B ≤ 10


数位dp经典题。

感觉快被自己蠢哭了。

这么简单的题居然调了那么久,结果是少打了一个 ~ 2333。。。

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll l,r,k,b,mul[35],len,num[35],f[35][25];
inline ll dfs(ll pos,ll cnt,ll lim){
    if(pos==len+1)return cnt==k;
    if((!lim)&&~f[pos][cnt])return f[pos][cnt];
    ll tmp=0,up=lim?num[pos]:1;
    for(ll i=0;i<=up;++i)if(cnt+i<=k)tmp+=dfs(pos+1,cnt+i,(lim&&(i==up)));
    if(!lim)f[pos][cnt]=tmp;
    return tmp;
}
inline ll solve(ll x){
    if(!x)return 0;
    for(len=0;mul[len]<=x;++len);
    --len,memset(f,-1,sizeof(f));
    for(ll i=len;~i;--i){
        if(x>=mul[i])x-=mul[i],num[i]=1;
        else num[i]=0;
    }
    reverse(num,num+len+1);
    return dfs(0,0,1);
}
int main(){
    cin>>l>>r>>k>>b,mul[0]=1;
    for(ll i=1;mul[i-1]<=r;++i)mul[i]=mul[i-1]*b;
    cout<<solve(r)-solve(l-1);
    return 0;
}

2018.09.07 Amount of degrees(数位dp)的更多相关文章

  1. Ural1057 - Amount of Degrees&lpar;数位DP&rpar;

    题目大意 求给定区间[X,Y]中满足下列条件的整数个数:这个数恰好等于K个互不相等的B的整数次幂之和.例如,设X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意: 输入:第一行包含两个整 ...

  2. &lbrack;ural1057&rsqb;&lbrack;Amount of Degrees&rsqb; &lpar;数位dp&plus;进制模型&rpar;

    Discription Create a code to determine the amount of integers, lying in the set [X; Y] and being a s ...

  3. URAL 1057&period; Amount of Degrees&lpar;数位DP&rpar;

    题目链接 我看错题了...都是泪啊,不存在3*4^2这种情况...系数必须为1... #include <cstdio> #include <cstring> #include ...

  4. 2018&period;09&period;07 loj&num;10166 数字游戏(数位dp)

    传送门 数位dp板子题. f[i][mod]" role="presentation" style="position: relative;"> ...

  5. &lbrack;ACM&rsqb; ural 1057 Amount of degrees &lpar;数位统计)

    1057. Amount of Degrees Time limit: 1.0 second Memory limit: 64 MB Create a code to determine the am ...

  6. 2018上海大都会邀请赛J(数位DP)

    #include<bits/stdc++.h>using namespace std;int num[20];//按位储存数字int mod;long long dp[20][110][1 ...

  7. 2018&period;09&period;07 bzoj1096&colon; &lbrack;ZJOI2007&rsqb;仓库建设(斜率优化dp)

    传送门 斜率优化dp经典题. 令f[i]表示i这个地方修建仓库的最优值,那么答案就是f[n]. 用dis[i]表示i到1的距离,sump[i]表示1~i所有工厂的p之和,sum[i]表示1~i所有工厂 ...

  8. 2018&period;09&period;07 bzoj1911&colon; &lbrack;Apio2010&rsqb;特别行动队(斜率优化dp)

    传送门 斜率优化dp经典题. 题目中说的很清楚,设f[i]表示前i个数分配出的最大值. 那么有: f[i]=max(f[j]+A∗(sum[i]−sum[j])2+B∗(sum[i]−sum[j])+ ...

  9. 2018&period;09&period;07 codeforces311B&period; Cats Transport(斜率优化dp)

    传送门 斜率优化dp好题. 对于第i只猫,显然如果管理员想从出发开始刚好接到它,需要在t[i]=h[i]−dist(1,i)" role="presentation" s ...

随机推荐

  1. 【Ngui 学习系列之一:简单组件的操作】

    一.Buttonunity edit: Sprite作为父对象和背景 -- Collider -- Button script Label 作为子对象和显示文字代码: private UIButton ...

  2. html显示时间

    <html> <head> <script type="text/javascript"> function time() { var time ...

  3. rsync拉取远程文件

    mkdir -p   /doc sshpass -p ''pwd" rsync -avz -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictH ...

  4. django学习之Model(五)MakingQuery

    接着上篇. 10-一次更新多个对象 有时想要对QuerySet中的所有对象的某一个field来设定一个值,这时候可以像下边这样用update(): # Update all the headlines ...

  5. Codeforces 474 F&period; Ant colony

    线段树求某一段的GCD..... F. Ant colony time limit per test 1 second memory limit per test 256 megabytes inpu ...

  6. 学习笔记TF027&colon;卷积神经网络

    卷积神经网络(Convolutional Neural Network,CNN),可以解决图像识别.时间序列信息问题.深度学习之前,借助SIFT.HoG等算法提取特征,集合SVM等机器学习算法识别图像 ...

  7. ELK日志分析解决方案

    概要 ELK(Elasticsearch , Logstash, Kibana的简称)是目前比较流行的日志分析解决方案,核心包括了三个部分 Elasticsearch:日志查询分析引擎 Logstas ...

  8. 辗转相除法&lpar;GCD&rpar;求左旋转字符串

    本文写于2017-01-18,从老账号迁移到本账号,原文地址:https://www.cnblogs.com/huangweiyang/p/6297874.html 今天在牛客网上做了一道题,题意就是 ...

  9. &lbrack;Java in NetBeans&rsqb; Lesson 07&period; JavaDoc and Unit Tests

    这个课程的参考视频和图片来自youtube. 主要学到的知识点有: 1. organize code into packages Create a package if want to make th ...

  10. pycharm设置连接github

    pycharm与guthub连起来,推送代码会方便一些 教程很多,转发一个:https://www.cnblogs.com/feixuelove1009/p/5955332.html