Ural 1057. Amount of Degrees
来源:互联网 发布:软件开发求职能力 编辑:程序博客网 时间:2024/06/06 19:43
Create a code to determine the amount of integers, lying in the set [X;Y] and being a sum of exactlyK different integer degrees of B.
Example. Let X=15, Y=20,K=2, B=2. By this example 3 numbers are the sum of exactly two integer degrees of number 2:
17 = 24+20,
18 = 24+21,
20 = 24+22.
18 = 24+21,
20 = 24+22.
Input
The first line of input contains integers X andY, separated with a space (1 ≤ X ≤ Y ≤ 231−1). The next two lines contain integersK and B (1 ≤ K ≤ 20;2 ≤ B ≤ 10).
Output
Output should contain a single integer — the amount of integers, lying betweenX and Y, being a sum of exactly K different integer degrees ofB.
Sample
15 2022
3题目大意:在X~Y区间找出由K个B的幂组成的数的个数,幂的系数为1。
分析:X~Y区间B进制数仅含K个1,且其他位为0的数的个数。
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<queue>using namespace std;typedef long long LL;int sum[34];int dp[34][34];int x,y,k,b;int dfs(int pos, int num, bool limit){ if(pos<=0) return num==k; if(num>k) return 0; if(!limit && dp[pos][num]!=-1) return dp[pos][num]; int end=limit?(sum[pos]?1:0):1; int ans=0; for(int i=0;i<=end;i++) ans+=dfs(pos-1,num+i,limit&&i==sum[pos]); if(!limit) dp[pos][num]=ans; return ans;}int wcb(int n){ int p=0; while(n) { sum[++p]=n%b; n/=b; } return dfs(p,0,true);}int main(){ int i,j; while(scanf("%d%d%d%d",&x,&y,&k,&b)==4) { memset(dp,-1,sizeof(dp)); printf("%d\n",wcb(y)-wcb(x-1)); }}
0 0
- URAL 1057. Amount of Degrees
- Ural 1057. Amount of Degrees
- Ural - 1057. Amount of Degrees
- Amount of Degrees URAL
- Ural 1057. Amount of Degrees 数位统计
- URAL - 1057 - Amount of Degrees
- URAL - 1057 Amount of Degrees
- URAL - 1057 Amount of Degrees
- ural 1057. Amount of Degrees(数位DP,4级)
- URAL 1057. Amount of Degrees (数位DP)
- URAL 1057 Amount of Degrees (数位统计)
- ural 1057 - Amount of Degrees(数位统计)
- [数位dp] ural 1057 Amount of Degrees
- ural 1057 Amount of Degrees(数位DP)
- ural 1057 Amount of degrees 【数位dp】
- 【URAL】1057 Amount of Degrees 数位DP
- URAL 1057 Amount of Degrees (数位dp)
- 数位DP-URAL-1057-Amount of Degrees
- glTexImage2D的详细说明
- R 代码备查
- SCI论文代写要注意4点
- poj1436 Horizontally Visible Segments 线段树成段更新
- dwz框架---(3)刷新dialog解决方案
- Ural 1057. Amount of Degrees
- 并查集(Union-Find)
- 在windows下批量执行mysql脚本
- API Demo 学习笔记——AutoCompleteTextView
- 黑马视频学习笔记-结构体(三)
- JAVA----枚举的相互转换
- 僵尸进程和孤儿进程
- Java 信号量 Semaphore 介绍
- 屏幕的横竖