HDU_3652_数位dp
http://acm.hdu.edu.cn/showproblem.php?pid=3652
cal(a,b,c,d),a表示当前位置,b表示是否有13的3种状态,c表示前面的数%13后的剩余,d表示是否已无大小限制。
注意保存无大小限制的一些值,不然会超时。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int num[],dp[][][]; int cal(int now,int sta,int pre,int ok)
{
if(now == ) return sta == && pre == ;
if(ok && dp[now][sta][pre] != -) return dp[now][sta][pre];
int end = ok?:num[now],ans = ;
for(int i = ;i <= end;i++)
{
int staa = sta,pree = (pre*+i)%;
if(sta == && i == ) staa = ;
if(sta == && i == ) staa = ;
else if(sta == && i == ) staa = ;
else if(sta == && i != ) staa = ;
ans += cal(now-,staa,pree,ok || i < end);
}
if(ok) dp[now][sta][pre] = ans;
return ans;
}
int main()
{
memset(dp,-,sizeof(dp));
int n;
while(~scanf("%d",&n))
{
int counts = ;
while(n)
{
num[++counts] = n%;
n /= ;
}
printf("%d\n",cal(counts,,,));
}
return ;
}
HDU_3652_数位dp的更多相关文章
- 【BZOJ1662】[Usaco2006 Nov]Round Numbers 圆环数 数位DP
		[BZOJ1662][Usaco2006 Nov]Round Numbers 圆环数 Description 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁 ... 
- bzoj1026数位dp
		基础的数位dp 但是ce了一发,(abs难道不是cmath里的吗?改成bits/stdc++.h就过了) #include <bits/stdc++.h> using namespace ... 
- uva12063数位dp
		辣鸡军训毁我青春!!! 因为在军训,导致很长时间都只能看书yy题目,而不能溜到机房鏼题 于是在猫大的帮助下我发现这道习题是数位dp 然后想起之前讲dp的时候一直在补作业所以没怎么写,然后就试了试 果然 ... 
- HDU2089 不要62[数位DP]
		不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ... 
- 数位DP GYM 100827 E Hill Number
		题目链接 题意:判断小于n的数字中,数位从高到低成上升再下降的趋势的数字的个数 分析:简单的数位DP,保存前一位的数字,注意临界点的处理,都是套路. #include <bits/stdc++. ... 
- 数位dp总结
		由简单到稍微难点. 从网上搜了10到数位dp的题目,有几道还是很难想到的,前几道基本都是模板题,供入门用. 点开即可看题解. hdu3555 Bomb hdu3652 B-number hdu2089 ... 
- 数位DP入门
		HDU 2089 不要62 DESC: 问l, r范围内的没有4和相邻62的数有多少个. #include <stdio.h> #include <string.h> #inc ... 
- 数位DP之奥义
		恩是的没错数位DP的奥义就是一个简练的dfs模板 int dfs(int position, int condition, bool boundary) { ) return (condition ? ... 
- 浅谈数位DP
		在了解数位dp之前,先来看一个问题: 例1.求a~b中不包含49的数的个数. 0 < a.b < 2*10^9 注意到n的数据范围非常大,暴力求解是不可能的,考虑dp,如果直接记录下数字, ... 
随机推荐
- 组件的props属性和state状态
			props属性: 我使用代码来说明React中props属性: // Profile.jsx import React from 'react' ; export default Class Prof ... 
- java线程相关基本方法
			java线程中常用的基本方法有wait,notify,notifyAll,sleep,join,yield等. 线程的生命周期一共分为五个部分,分别是:新建(New).就绪(Runnable).运行( ... 
- 【转】常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)
			ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. 这篇文章介绍的常见面试题是关于重载(overloading)方法和重写( ... 
- spring同时操作多数据库 多个mysql和mongoDB,不需切换数据源,同时操作mysql和mongodb
			源码:https://github.com/haihai1172/spring-mysql-mongoDB 项目目录 1.环境搭建,java-sdk 1.8 具体怎么搭建,就不说了 2.配置jdbc. ... 
- 云资源中的低成本战斗机——竞价实例,AWS、阿里云等六家云厂商完全用户使用指南
			云端资源价格 预留实例:长期持有,批发路线,价格最便宜. 按需实例:即买即用,零售路线,价格最贵. 这两种资源,基于不同区域/价格的六家云厂商价格对比,连同原始数据文档我们已经打包成了一份电子文档,有 ... 
- 巧用位运算规律 Flags
			找规律 (1 ) &1 =1 (1 ) &2 =0 (1 ) &3 =1 (1 ) &4 =0 (1 ) &5 =1 (1 ) &6 =0 (1 ) & ... 
- 机器学习新手必看:Jupyter Notebook入门指南
			参考网址:https://blog.csdn.net/guleileo/article/details/80490921 
- APICloud联合腾讯云推出“云主机解决方案“,各种福利等你拿
			为了帮助开发者一站式打通云.开发.运维全流程服务,更全面提供基于自身业务情况的云服务器.数据库.存储等基础设施服务,APICloud联合腾讯云重磅推出“云主机解决方案“.开发者可通过控制台简单清晰的购 ... 
- 程序员Java架构师多线程面试题和回答解析
			当我们在Java架构师面试的过程中常见的多线程和并发方面的问题肯定是必不可少的一部分.那么在面试之前我们更应该多准备一些关于多线程方面的问题. 面试官只是想确信面试者有足够的Java线程与并发方面的知 ... 
- Ansible playbooks常用模块案例操作
			打开git bash 连接ansible服务器,然后进入deploy用户 #ssh root@192.168.96.188 进入python3.6虚拟环境 #su - deploy #source . ... 
