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