HDU3652:B-number(数位DP)
#include <iostream>
#include <cstring>
using namespace std;
typedef long long ll;
ll dp[30][20][3];
ll a[30];
ll dfs(int len , int mod , int have , int flag) {
if(len == 0) {
return have == 2 && mod == 0;
}
if(!flag && dp[len][mod][have] != -1) {
return dp[len][mod][have];
}
int t = flag ? a[len] : 9;
ll sum = 0;
for(int i = 0 ; i <= t ; i++) {
if(have == 0 && i == 1) {
sum += dfs(len - 1 , (mod * 10 + i) % 13 , 1 , flag && i == t);
}
else if(have == 1 && i == 3) {
sum += dfs(len - 1 , (mod * 10 + i) % 13 , 2 , flag && i == t);
}
else if(have == 1 && i != 1) {
sum += dfs(len - 1 , (mod * 10 + i) % 13 , 0 , flag && i == t);
}
else {
sum += dfs(len - 1 , (mod * 10 + i) % 13 , have , flag && i == t);
}
}
if(!flag)
dp[len][mod][have] = sum;
return sum;
}
ll Get(ll x) {
ll gg = x;
memset(dp , -1 , sizeof(dp));
memset(a , 0 , sizeof(a));
int len = 0;
while(gg) {
a[++len] = gg % 10;
gg /= 10;
}
return dfs(len , 0 , 0 , 1);
}
int main()
{
ll n;
while(cin >> n){
cout << Get(n) << endl;
}
return 0;
}
HDU3652:B-number(数位DP)的更多相关文章
- 多校5 HDU5787 K-wolf Number 数位DP
// 多校5 HDU5787 K-wolf Number 数位DP // dp[pos][a][b][c][d][f] 当前在pos,前四个数分别是a b c d // f 用作标记,当现在枚举的数小 ...
- hdu 5898 odd-even number 数位DP
传送门:hdu 5898 odd-even number 思路:数位DP,套着数位DP的模板搞一发就可以了不过要注意前导0的处理,dp[pos][pre][status][ze] pos:当前处理的位 ...
- codeforces Hill Number 数位dp
http://www.codeforces.com/gym/100827/attachments Hill Number Time Limits: 5000 MS Memory Limits: ...
- HDU 5787 K-wolf Number 数位DP
K-wolf Number Problem Description Alice thinks an integer x is a K-wolf number, if every K adjacen ...
- Fzu2109 Mountain Number 数位dp
Accept: 189 Submit: 461Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description One ...
- HDU 3709 Balanced Number (数位DP)
Balanced Number Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- beautiful number 数位DP codeforces 55D
题目链接: http://codeforces.com/problemset/problem/55/D 数位DP 题目描述: 一个数能被它每位上的数字整除(0除外),那么它就是beautiful nu ...
- FZU - 2109 Mountain Number 数位dp
Mountain Number One integer number x is called "Mountain Number" if: (1) x>0 and x is a ...
- BNU 13024 . Fi Binary Number 数位dp/fibonacci数列
B. Fi Binary Number A Fi-binary number is a number that contains only 0 and 1. It does not conta ...
- hdu 5898 odd-even number(数位dp)
Problem Description For a number,if the length of continuous odd digits is even and the length of co ...
随机推荐
- Apache ActiveMQ 实践 <一>
一.下载最新版本 ActiveMq http://activemq.apache.org/activemq-5152-release.html,下载目录如下: 二.创建项目 1.普通项目 添加 jar ...
- 【Python-django后端开发】logging日制配置详解!!!
官方文档请查看:https://docs.djangoproject.com/en/1.11/topics/logging/ 1. 配置工程日志,在setting.py里,如下 LOGGING = { ...
- 设置Myeclipse的jvm内存参数
Myeclipse经常会遇到内存溢出和Gc开销过大的情况,这时候就需要修改Myeclipse的Jvm内存参数 修改如下:(使用Extjs做公司大项目时候,不要让项目Builders的Javascrip ...
- 史上最全面的SignalR系列教程-1、认识SignalR
SignalR 是什么? SignalR 是一个面向 ASP.NET 开发人员的库,可简化将实时 web 功能添加到应用程序的过程. 实时 web 功能是让服务器代码将内容推送到连接的客户端立即可用, ...
- 使用富文本编辑器Kindeditor
今天在做需求的时候,遇到有一个字段,需要保存带有格式的内容,决定使用富文本框编辑器Kindeditor来实现,解决方法如下: 登录官网下载控件包: http://kindeditor.net/down ...
- 【杂项】关于NOIP2018复赛若干巧合的声明
导言 参加NOIP2018时本人学龄只有两个月,却斩获了省一等奖,保送了重点中学,这看上去是个我创造的神话,然而,在我自己心中,我认为这只是个巧合(其实我认为运气也是实力的一部分),接下来,我将说明一 ...
- 用命令将本地jar包导入到本地maven仓库
[**前情提要**]在日常开发过程中,我们总是不可避免的需要依赖某些不在中央仓库,同时也不在本地仓库中的jar包,这是我们就需要使用命令行将需要导入本地仓库中的jar包导入本地仓库,使得项目依赖本地仓 ...
- MySQL-EXPLAIN执行计划Extra解释
EXPLAIN命令输出的列中Extra字段可选值较多,这里单独说一下. 该Extra列 EXPLAIN输出包含MySQL解决查询的额外信息.以下列表说明了此列中可能出现的值.每个项目还指示JSON格式 ...
- django的安装及基本设置记录
环境变量的配置在这个文章中,不会的可以去看看 https://www.cnblogs.com/alex3174/p/11116558.html 主要步骤是:我的电脑-右键-属性-高级系统设置-环境变量 ...
- keras 学习-线性回归
园子里头看到了一些最基础的 keras 入门指导, 用一层网络,可以训练一个简单的线性回归模型. 自己学习了一下,按照教程走下来,结果不尽如人意,下面是具体的过程. 第一步: 生成随机数据,绘出散点图 ...