题意:找出1~n范围内含有13并且能被13整除的数字的个数

/*
数位DP
dp[i][j][0]表示i位数模13为j当前没有包含13并且最高位不为1的方案数;
dp[i][j][0]表示i位数模13为j当前没有包含13并且最高位为1的方案数;
dp[i][j][0]表示i位数模13为j当前包含13的方案数。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define N 15
using namespace std;
int bit[N],dp[N][N][];
int dfs(int pos,int mod,int have,int lim){
int num,ans,mod_x,have_x;
if(pos<=) return mod==&&have==;
if(!lim&&dp[pos][mod][have]!=-)
return dp[pos][mod][have];
num=lim?bit[pos]:;
ans=;
for(int i=;i<=num;i++){
mod_x=(mod*+i)%;
have_x=have;
if(have==&&i==) have_x=;
if(have==&&i!=) have_x=;
if(have==&&i==) have_x=;
ans+=dfs(pos-,mod_x,have_x,lim&&i==num);
}
if(!lim) dp[pos][mod][have]=ans;
return ans;
}
int main(){
int n,len;
while(scanf("%d",&n)!=EOF){
memset(bit,,sizeof(bit));
memset(dp,-,sizeof(dp));
len=;
while(n){
bit[++len]=n%;
n/=;
}
printf("%d\n",dfs(len,,,));
}
return ;
}

最新文章

  1. HDU5934 强连通分量
  2. &quot;Accepted today?&quot;[HDU1177]
  3. Hadoop HDFS编程 API入门系列之HdfsUtil版本1(六)
  4. iOS 导航控制器返回栈中的某一控制器
  5. Walking Ant(bfs)
  6. ios背景更新和下载
  7. CodeForces 383D Antimatter
  8. Exception: Unexpected End Of File(crontab)
  9. face landmark 人脸特征点检测
  10. opencron
  11. java Page分页显示
  12. c#基础之异常处理
  13. HTTP协议内容1
  14. android 给LinearLayout中添加一定数量的控件,并让着一定数量的控件从右到左移动,每隔若干秒停顿一下,最后一个view链接第一个view,然后继续移动循环往复,形成一个死循环简单动画效果
  15. 基于Vue.js的uni-app前端框架结合.net core开发跨平台project
  16. 1.7Oob成员变量和局部变量疑难区分
  17. 微信h5支付“网站域名ICP备案主体与商户号主体不一致”的解决方法,H5微信支付 授权函下载
  18. 10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)
  19. ajax劫持?
  20. 微信小程序及开发工具介绍

热门文章

  1. Apache Maven(二):构建生命周期
  2. C++ Primer 学习笔记_Chapter4 数组和指针–指针
  3. 详解JavaScript中的arc的方法
  4. Hive学习路线图
  5. Android stadio 插件推荐--ok gradle
  6. 如何让button保持点击状态
  7. php 升级php5.5 、php7
  8. 剑指Offer - 九度1386 - 旋转数组的最小数字
  9. USACO Section1.2 Milking Cows 解题报告
  10. maven的一些使用配置!