hdu_5787_K-wolf Number(数位DP)
题意:
给你一个区间,让你找满足任意k个数位内都没有相同的数字的个数
题解:
因为k不大,就直接将当前pos的前k-1个数传进去就行了
#include<cstdio>
#include<cstring>
int dig[],len,k;
long long dp[][][][][][]; long long dfs(int pos,int pre[],bool inf,bool ze=)
{
if(!pos)return ;
long long *pp=&dp[pos][pre[]][pre[]][pre[]][pre[]][ze];
if(!inf&&(*pp)!=-)return *pp;
int en=inf?dig[pos]:;
long long ans=;
for(int i=;i<=en;i++){
int fg=,pr[];;
for(int j=;j<k&&j<=len-pos&&ze==;j++)if(i==pre[j]){fg=;}
if(fg)continue;
for(int j=;j<=;j++)pr[j]=;
for(int j=k-;j>=;j--)pr[j]=pre[j-];
if(i==&&ze)pr[]=;else pr[]=i;
ans+=dfs(pos-,pr,inf&&i==en,(i==&&ze));
}
if(!inf)*pp=ans;
return ans;
} int main()
{
long long l,r;
while(~scanf("%lld%lld%d",&l,&r,&k)){
memset(dp,-,sizeof(dp)),l--;
for(len=;l;l/=)dig[++len]=l%;
int pre[];
for(int i=;i<=;i++)pre[i]=;
long long tmp=dfs(len,pre,);
for(len=;r;r/=)dig[++len]=r%;
for(int i=;i<=;i++)pre[i]=;
printf("%lld\n",dfs(len,pre,)-tmp);
}
return ;
}
hdu_5787_K-wolf 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 ...
随机推荐
- 移动端rem适配问题
将下面这段代码,放在头部的script标签里,可解决字体适配问题 比例是28px = 1rem function __setFontSize__(){document.documentElement. ...
- mac版Tomcat安装
挺好安装的,就是网上资料有的错了. 1.下载Tomcat 网址:http://tomcat.apache.org,解压在~/Downloads 目录下,我的版本是apache-tomcat-7.0.7 ...
- LoadRunner参数值定义-摘自一米阳光
深入解析LoadRunner下的参数化取值 熟悉LoadRunner的人,相信都会经常使用参数化功能,但是对于参数化的使用到底了解多少,就值得深思了.包括本人在内也是,每次在做压力测试的时候,基本 ...
- webservice底层使用Socket进行网络调用
服务端代码(其实tomcat的原理也是这样): 客户端代码:
- windows 7 & protobuf 3.0 & python 3.5
置顶: 在Python中使用protocol buffers参考指南 http://blog.csdn.net/losophy/article/details/17006573 其实看这篇文章就可以把 ...
- BeanUtils属性
1.copyproperties:拷贝方法 (1).当源对象(a)中存在一个java.sql.Date类型的属性并且值为null,目标对象(b)中也存在这个同名同类型的属性.把a对象属性值c ...
- L2-010. 排座位
L2-010. 排座位 题目链接:https://www.patest.cn/contests/gplt/L2-010 并查集 相关题目:L2-007. 家庭房产,L3-003. 社交集群 下午打的时 ...
- LINQ 查询集合总的重复项
select new FMDS_FarmPlotNewInfo { FarmPlo ...
- thinkphp 注册验证
遇到用户注册等情况时,如果等用户输入所有信息,点击注册按钮提交后,再验证输入是否正确,体验很不好,而且很浪费用户的时间,增加注册成本,这里提供一个例子,演示了怎么使用ajax进行单步验证,使用thin ...
- Java 泛型 协变式覆盖和泛型重载
Java 泛型 协变式覆盖和泛型重载 @author ixenos 1.协变式覆盖(Override) 在JDK 1.4及以前,子类方法如果要覆盖超类的某个方法,必须具有完全相同的方法签名,包括返回值 ...