hdu5787(数位dp)
基础的数位dp,才发现今天才终于彻底搞懂了数位dp。。。
//
// main.cpp
// hdu5787.1
//
// Created by New_Life on 16/8/10.
// Copyright © 2016年 chenhuan001. All rights reserved.
// #include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std; long long dp[][][];
int k;
int mod; long long dfs(int wei[],int p,int flag,long long pre,int pk)
{
if(p<) return ;
if(flag == && dp[p][pk][pre]!= -) return dp[p][pk][pre];
int mark[];
int twei[];
memset(mark,,sizeof(mark));
memset(twei,,sizeof(twei));
long long tp = pre;
int cnt = ;
while(tp)
{
twei[ cnt++ ] = tp%;
tp/=;
}
for(int i=;i<pk;i++) mark[twei[i]]++; if(flag == )
{
long long sum = ;
for(int i=;i<wei[p];i++)
{
if(pk== && i==)
{
sum += dfs(wei,p-,,,);
}
else
{
if(mark[i]==)
sum += dfs(wei,p-,,(pre*+i)%mod,min(pk+,k-));
}
}
if(mark[wei[p]]==) sum += dfs(wei,p-,,(pre*+wei[p])%mod,min(pk+,k-));
return sum;
}
else
{
long long sum = ;
for(int i=;i<=;i++)
{
if(pk== && i==)
{
sum += dfs(wei,p-,,,);
}
else
{
if(mark[i]==)
{
sum += dfs( wei,p-,,(pre*+i)%mod,min(pk+,k-) );
}
}
}
return dp[p][pk][pre]=sum;
}
} long long get(long long x)
{
if(x==) return ;
memset(dp,-,sizeof(dp));
int wei[];
int cnt = ;
while(x)
{
wei[cnt++] = x%;
x /= ;
}
return dfs(wei,cnt-,,,);
} int main(int argc, const char * argv[]) {
long long L,R;
while (cin>>L>>R>>k) {
mod = (int)pow(10.0,k-);
cout<<get(R)-get(L-)<<endl;
// int ans = 0;
// for(int i=L;i<=R;i++)
// {
// int wei[10];
// memset(wei, 0, sizeof(wei));
// int ti = i;
// int cnt = 0;
// while(ti)
// {
// wei[ cnt++ ] = ti%10;
// ti/=10;
// }
// int flag = 0;
// for(int j=1;j<cnt;j++)
// {
// for(int p=1;p<k;p++)
// {
// if(j-p>=0 && wei[j-p]==wei[j] )
// {
// flag = 1;
// break;
// }
// }
// if(flag) break;
// }
// if(flag == 0) ans++;
// }
// printf("right: %d\n",ans);
}
return ;
}
/*
1 1 2
20 100 5
101 101 3
100 200 2
*/
hdu5787(数位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 用作标记,当现在枚举的数小 ...
- HDU5787 K-wolf Number 数位dp
分析:赛场上也知道是裸的数位dp,但是无奈刷数位dp题刷的太少了,并不能写出来 一点感想:赛后补题,看了题解的map记录状态,一脸蒙逼,也是非常的不爽,然后想看别人写的,不是递归就是写的比较乱 而且我 ...
- 【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 ...
随机推荐
- Cookie案例
实现的功能是:在页面上点击,各种书名,跳转到另一个页面,在点解return 回到原来的页面,并且最下面出现刚才点击的书名:进行多次操作,都会出现刚刚点击的书名: 类似于:在浏览器上显示你登录的记录: ...
- windows下UDP服务器和客户端的实现
UDP是面向非连接的协议,因此在实现UDP服务器时,服务器不用总是处于监听状态.可以直接收发数据. 服务器端 1.初始化 WASStartup ( ... ) 2.创建Socket s ...
- 基于@AspectJ和schema的aop(四)---@AspectJ进阶
@AspectJ可以使用切点函数定义切点, 我们还可以使用逻辑运算对切点进行复合运算得到复合的切点. 我们还可以对切点进行命名, 从而可以复用切点.当一个连接点匹配多个切点时, 需要考虑增强织入的顺序 ...
- 四个好看的CSS样式表格
文章来源 http://www.cnphp6.com/archives/58020 1. 单像素边框CSS表格 这是一个非经常常使用的表格样式. 源码: 2. 带背景图的CSS样式表格 和上面差点儿相 ...
- Jetty和Tomcat的选择:按场景而定
Jetty和Tomcat的选择:按场景而定 Jetty和Tomcat为目前全球范围内最著名的两款开源的webserver/servlet容器.由于它们的实现都遵循Java Servlet规范,一个Ja ...
- MSM8974 fastboot烧写软件
fastboot烧写是在aboot阶段做的,所以空板没有完整烧写aboot及其boot sequence前的image是没法使用fastboot的.在手机开机状态下,执行: adb re ...
- CF 321B Ciel and Duel(费用流)
题目链接:http://codeforces.com/problemset/problem/321/B 题意:两个人,分别有n.m张牌.每张牌有两个属性类型和能力,类型为攻击或者防守.B的m张牌的属性 ...
- 【转】在网页中运行VB6程序
用VB6做的程序在网页里运行, 需要把程序做成OCX格式,下面简单做一介绍: 首先新建一个工程, 选择ActivX控件: 然后添加控件和代码: 然后F5运行 然后按下图设置,去掉弹出消息阻止 这样 ...
- OGNL调用静态方法和属性
ognl的全名是 Object-Graph Navigation Language 表示的是图对象导航语言...我觉得它最厉害的一点是,通过"."来实现对象的导航...下面看他他的 ...
- Spring的IoC容器注入的类型
Spring除了可以注入Bean实例外,还可以注入其他数据类型. 注入基本数据类型 xml配置文件中的init-method="init"属性是取得Bean实例之后,输入属性值后自 ...