发现自己以前对数位DP其实一窍不通...

这题可以做一个很简单的转换:一个数如果在$b$进制下是一个01串,且1的个数恰好有k个,那么这个数就是合法的(刚开始没判断必定是01串,只判断了1的个数竟然有60pts,数据可真的水~)

这个结论显然成立,也不需要什么证明啦qaq~

然后数位DP就好了

转化为b进制后要么插1要么插0,$dp[x][cnt]$表示当前处理到第i为,已经有cnt个1的情况下

转移方程:

$$dp[x][cnt]=\sum dp[x-1][cnt+1](当前位为1)$$

$$dp[x][cnt]=\sum dp[x-1][cnt](当前位为0)$$

记忆化搜索就好了

 #include<bits/stdc++.h>
#define writeln(x) write(x),puts("")
#define writep(x) write(x),putchar(' ')
using namespace std;
inline int read(){
int ans=,f=;char chr=getchar();
while(!isdigit(chr)){if(chr=='-') f=-;chr=getchar();}
while(isdigit(chr)){ans=(ans<<)+(ans<<)+chr-;chr=getchar();}
return ans*f;
}void write(int x){
if(x<) putchar('-'),x=-x;
if(x>) write(x/);
putchar(x%+'');
}const int M = ;
int dp[M][M],a[M],tp,l,r,x,y,k,b;
int dfs(int x,int cnt,int lim){
if(cnt>k)return ;
if(x==)return cnt==k;
if(!lim&&dp[x][cnt]!=-)return dp[x][cnt];
int ans=,up=b-;
if(lim)up=a[x];
for(int i=;i<=up;i++){
if(i==)ans+=dfs(x-,cnt+,lim&&(a[x]==i));
else if(!i)ans+=dfs(x-,cnt,lim&&(a[x]==i));
}
if(!lim)dp[x][cnt]=ans;
return ans;
}
inline int Solve(int x){
int tp=;
while(x){a[++tp]=x%b;x/=b;}
return dfs(tp,,);
}
int main(){
memset(dp,-,sizeof(dp));
l=read(),r=read(),k=read(),b=read();
l=Solve(l-);r=Solve(r);
writeln(r-l);
return ;
}

最新文章

  1. js url.slice(star,end) url.lastIndexOf(&#39;/&#39;) + 1, -4
  2. chrome &#39;adobe flash player 已过期&#39;解决方法
  3. 转:一个Sqrt函数引发的血案
  4. AFNetworking 简单应用
  5. iOS使用WSDL2ObjC工具调用Webservice接口
  6. JavaScript---网络编程(8)-DHTML技术演示(1)
  7. SPI模式下MCU对SD卡的控制及操作命令
  8. php 按列值合并数据
  9. Python 3 re模块3个括号相关的语法
  10. 【STM32H7教程】第8章 STM32H7的终极调试组件Event Recorder
  11. Java利用POI读取Excel
  12. 剑指offer(39)平衡二叉树
  13. 理解inode 以及 软链接和硬链接概念区分
  14. Java知多少(36)内部类及其实例化
  15. Bootstrap3基础 input-group-btn 按钮与输入框 横向组合
  16. CSRF重放共计详解
  17. Kibana安装及使用
  18. [NOI.AC]COUNT(数学)
  19. 小程序 上啦下拉刷新window配置
  20. loadrunner添加变量检查点

热门文章

  1. NPAPI插件开发新手容易遇到的问题
  2. [00]APUE:GCC / GDB / Makefile
  3. java 读取mysql中数据 并取出
  4. JQuery validate验证规则
  5. 最短路(模板Dtra
  6. Docker的概念及基本用法
  7. Spark与Hadoop的对比
  8. ElasticSearch 增删改查
  9. 【笔记篇】不普及向——莫比乌斯反演学习笔记 &amp;&amp; 栗题HAOI2011 Problem B
  10. 同步图计算实现pageRank算法