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 ...
随机推荐
- 关于PHP的一小段代码求解如下求解"%2\$s"
<?php$format = "The %2\$s contains %1\$d monkeys";printf($format, 8, "北京");?& ...
- 集线器(HUB),交换机,和路由器的区别
交换机与集线器的区别从大的方面来看可以分为以下三点: 1.从OSI体系结构来看,集线器属于OSI第一层物理层设备,而交换机属于OSI的第二层数据链路层设备.也就意味着集线器只是对数据的传输起到同步.放 ...
- 大型网站技术架构 核心原理与案例分析 pdf
需要的小伙伴拿去,哈哈.百度云链接:https://pan.baidu.com/s/1hsuiM3q
- jquery 学习笔记 (2)--write less,do more
$(window).load(function(){ }) window.onload=function(){ } toggle()方法 toggle()方法的语法结构: ...
- pthon之异常、文件练习题
1.在当前目录下查找文件夹“电摄班”,如果不存在则创建2.在电摄班下创建boys.girls.两个txt文件3.将字典中属于电摄班的同学按男女区分,分别放到boys.girls文件中,每个名字在文件中 ...
- AIDL机制实现进程间的通讯实例
转载自:http://blog.csdn.net/cjjky/article/details/7562652 ======================================= 在Andr ...
- Linux安全审计命令
安全审计 数据分析 capinfos xxx.pcap 产看数据包基本信息 日志分析 who /var/log/wtmp #查看登录用户信息 哈希校验 sha265 文件名 md5sum 文件名 &g ...
- html历史
方法一: location.hash = 'abc' window.onhashchange = function(){} location.hash 返回结果 #abc => locati ...
- 《JS权威指南学习总结--8.7 函数属性、方法和构造函数》
内容要点: 在JS程序中,函数是值.对函数执行typeof运算会返回字符串 "function",但是函数是JS中特殊的对象.因为函数也是对象,它们也可以拥有属性和方法,就像普 ...
- PostgreSQL ----- No relations found.
本篇文章可能有错,尚未细细研究 运行\d出错: No relations found. \d只显示可见的表,也就是该数据库的schema在search_path中. SHOW search_path; ...