108是几位数_印度尼西亚总人口数

108是几位数_印度尼西亚总人口数求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和。例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:17=24+2018=24+2120=24+22输入格式第一行包含两个整数 X 和 Y,接下来两行包含整数 K 和 B。输出格式只包含一个整数,表示满足条件的数的个数。数据范围1≤X≤Y≤231−1,1≤K≤20,2≤B≤10输入样例:15 2022输出样例:3#include<bit

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

求给定区间 [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。

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

数据范围
1≤X≤Y≤231−1,
1≤K≤20,
2≤B≤10

输入样例:
15 20
2
2
输出样例:
3
#include<bits/stdc++.h>
using namespace std;
const int N = 1e2 + 10;
const int K = 35;
//[1 - X]
int res = 0;
int f[K][21];
int l,r,k,b;
void init(){ 
   
    for(int i = 0;i < K;i ++){ 
   
        for(int j = 0;j <= i && j < 21;j ++)
            if(!j)f[i][j] = 1;
            else f[i][j] = f[i - 1][j - 1] + f[i - 1][j];
    }
}
int dp(int x){ 
   
    if(!x)return 0;
    vector<int>nums;
    while(x)nums.push_back(x % b),x /= b;

    int res = 0;
    int last = k;
    for(int i = nums.size() - 1;i >= 0;i --){ 
   
        int x = nums[i];
        if(last < 0 || last > i + 1)break;
        if(x > 1){ 
   
            if(i >= last)res += f[i][last];
            if(i >= last - 1)res += f[i][last - 1];
        }
        else if(x == 1){ 
   
            if(i >= last)
            res += (f[i][last]);
        }
        if(x > 1)break;
        if(x == 1)last --;
        if(!i && last == 0)res ++;
    }
    return res;
}
int main(){ 
   
    init();
    cin>>l>>r>>k>>b;
    cout<<(dp(r) - dp(l - 1))<<endl;
    
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168584.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • bitcomet官方_Bitcomet

    bitcomet官方_Bitcometudp://mgtracker.org:2710/announcehttp://share.camoe.cn:8080/announceudp://11.rarbg.me:80/announcehttp://tracker.tfile.me/announcehttp://open.acgtracker.com:1096/announcehttp…

    2022年10月1日
    3
  • 批处理for命令的用法_批处理for命令详解

    批处理for命令的用法_批处理for命令详解for/?1.对一组文件中的每一个文件执行某个特定命令。for%variablein(set)docommand[command-parameters]for%%variablein(set)docommand [command-parameters]%variable指定一个单一字母可替换的参数。set表示字符串或变量,当表示多个变量时,中间可以,空格等隔开…

    2022年9月2日
    4
  • 美国东部时间和北京时间之间的转换方式_北京时间19点美国几点

    美国东部时间和北京时间之间的转换方式_北京时间19点美国几点美国东部时间在UTC-5时区,北京时间是UTC+8时区,正常情况下美东时间比北京时间晚13个小时。需要注意的是美国有夏令时,而北京没有夏令时,美国夏令时时会让时间快一个小时,让人民早起早睡,所以在美国

    2022年8月5日
    9
  • js常见问题

    js常见问题

    2021年6月30日
    73
  • 蓝天人眼中的郎凤娥是谁_山西蓝天集团

    蓝天人眼中的郎凤娥是谁_山西蓝天集团蓝天人眼中的郎凤娥,提起郎凤娥,我海中就闪现除了一个忙碌的身影,一个时时刻刻都在为企业未来的发展尽心尽力新女性,这就是郎凤娥。郎凤娥非常看重企业的形象与责任,过去的几年中她曾获得全国三八红旗手、全国五一劳动奖章、全国双学双比女能手、山西省十大女杰、山西省劳动模范、“山西十大杰出女企业家”等等,多的数不过来的荣誉。2011年她还获得了全国资源综合利用年度影响力人物,这让她觉得很欣慰,多年的辛苦没有白…

    2025年6月29日
    4
  • redis集群主从复制原理_主从关系紫音

    redis集群主从复制原理_主从关系紫音Redis主从复制主从复制简介主从复制的概念主从复制的作用主从复制工作流程阶段一:建立连接阶段主从连接(slave连接master)第一种方式第二种方式第三种方式授权访问阶段二:数据同步阶段工作流程数据同步阶段master说明数据同步阶段slave说明阶段三:命令传播阶段命令传播阶段的部分复制服务器的运行id复制缓冲区复制缓冲区内部工作原理复制缓冲区主从服务器复制偏移量(offset)数据同步+命令传播阶段工作流程心跳机制心跳阶段注意事项主从复制常见问题引发频繁的全量复制1引发频繁的全量复制2频繁的网络中

    2022年8月13日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号