P2188 小Z的 k 紧凑数

题目描述

小 Z 在草稿纸上列出了很多数,他觉得相邻两位数字差的绝对值不超过 k 的整数特别奇特,称其为 k 紧凑数。

现在小 Z 想知道 [l,r] 内有多少个 k 紧凑数,希望你帮帮他。

输入输出格式

输入格式:

第一行包含三个整数 l,r,k。

输出格式:

第一行包含一个整数,表示 [l,r] 内 k 紧凑数的个数。

输入输出样例

输入样例#1:

1 13 1
输出样例#1:

12

说明

【数据规模】

对于 30% 的数据,r − l ≤ 10^5;

对于另外 30% 的数据,l = 1,r 为 10 的倍数;

对于 100% 的数据,1 ≤ l ≤ r ≤ 10^18,0 ≤ k ≤ 8。

#include<iostream>
#include<cstdio>
using namespace std;
long long l,r;
int k,len,bin[],b[];
long long dfs(int pos,int pre,int limit,int lead){
if(pos==len+)return ;
int end=limit?bin[pos]:;
long long ans=;
if(pos==){
for(int i=;i<=end;i++)
ans+=dfs(pos+,i,limit&&i==end,lead&&i==);
}
else if(lead){
for(int i=;i<=end;i++)
ans+=dfs(pos+,i,limit&&i==end,lead&&i==);
}
else{
for(int i=max(,pre-k);i<=min(pre+k,end);i++)
ans+=dfs(pos+,i,limit&&i==end,lead&&i==);
}
return ans;
}
long long work(long long x){
len=;
while(x){
b[++len]=x%;
x/=;
}
for(int i=,j=len;i<=len;i++,j--)bin[i]=b[j];
return dfs(,,,);
}
int main(){
freopen("Cola.txt","r",stdin);
scanf("%d%d%d",&l,&r,&k);
cout<<work(r)-work(l-);
}

30分 暴力枚举数的每一位

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<cstdlib>
#define int long long
using namespace std;
int f[][],x,y,m,bin[];
int dp(int x){
if(x==)return ;
bin[]=;while(x)bin[++bin[]]=x%,x/=;
if(bin[]==)return bin[]+;
int ans=;
for(int i=;i<bin[];i++)
for(int j=;j<;j++)ans+=f[i][j];
for(int i=;i<bin[bin[]];i++)ans+=f[bin[]][i];
for(int i=bin[]-;i;i--){
if(i<bin[]-&&abs(bin[i+]-bin[i+])>m)return ans;
for(int j=;j<bin[i];j++)if(abs(j-bin[i+])<=m)ans+=f[i][j];
}
if(abs(bin[]-bin[])<=m)ans++;return ans;
}
signed main(){
freopen("Cola.txt","r",stdin);
cin>>x>>y>>m;
for(int i=;i<;i++)f[][i]=;
for(int i=;i<=;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)if(abs(j-k)<=m)f[i][j]+=f[i-][k];
cout<<dp(y)-dp(x-);
return ;
}

100分 数位dp

洛谷P2188 小Z的 k 紧凑数的更多相关文章

  1. P2188 小Z的 k 紧凑数 题解(数位DP)

    题目链接 小Z的 k 紧凑数 解题思路 数位DP,把每一个数位的每一个数对应的可能性表示出来,然后求\(num(1,r)-num(1,l-1)\),其中\(num(i,j)\)表示\([i,j]\)区 ...

  2. Bzoj2038/洛谷P1494 小Z的袜子(莫队)

    题面 Bzoj 洛谷 题解 考虑莫队算法,首先对询问进行分块(分块大小为\(sqrt(n)\)),对于同一个块内的询问,按照左端点为第一关键字,右端点为第二关键字排序.我们统计这个区间内相同的颜色有多 ...

  3. 洛谷 2186 小Z的栈函数

    https://www.luogu.org/problem/show?pid=2186 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: N ...

  4. 洛谷——P2117 小Z的矩阵

    P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余 ...

  5. 洛谷—— P2117 小Z的矩阵

    https://www.luogu.org/problemnew/show/2117 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1 ...

  6. 洛谷 P2117 小Z的矩阵

    P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余 ...

  7. 洛谷 2187 小Z的笔记

    [题解] DP.  设f[i]表示前i个字母,保留第i个字母,最多可以保留多少个字母:设g[i]为当前字母为i的位置对应的f的最大值. 转移方程就是f[i]=max(f[i], g[j]+1) (j与 ...

  8. [洛谷P2186] 小Z的栈函数

    题目链接: 传送门 题目分析: 大模拟,先得存操作,然后再处理每个数-- 有一个小优化,在处理操作的时候顺便判一下最后栈里是不是有且仅有一个数,但A完了才想起来,所以就算了-- 总之就是个模拟题--没 ...

  9. [洛谷P2107] 小Z的AK计划

    题目类型:贪心,堆 传送门:>Here< 题意:给出\(N\)个房间,每个房间距离起点的距离为\(x[i]\),每个房间可以选择进去和不进去,如果进去了那么要\(t[i]\)秒后才能出来. ...

随机推荐

  1. sourceSet

    android { sourceSets { main{ manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources ...

  2. drawable canvas使用

    /** * Drawable 就是一个可画的对象, * 其可能是一张位图(BitmapDrawable), * 也可能是一个图形(ShapeDrawable), * 还有可能是一个图层(LayerDr ...

  3. Linux 设备和模块的分类

    概念:在Linux系统中,所有设备都被映射成 [设备文件] 来处理,设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作. 一.设备类型 整理自:(相当不错,建议有时间看下原文) <第一章 ...

  4. 安装wampserver 计算机丢失msvcr100.dll

    刚刚重新安装了Windows 7 64位系统,再安装Wampserver 2时却提示系统错误,如下图所示: 在网上下载了MSVCR100.dll放到system32文件夹下依然没有用. 百度搜索了一下 ...

  5. 用户态文件系统fuse学习【转】

    本文转载自:https://blog.csdn.net/ty_laurel/article/details/51685193 FUSE概述 FUSE(用户态文件系统)是一个实现在用户空间的文件系统框架 ...

  6. C# nunit 单元测试

    1. 引包 nunit.framework.dll

  7. Spring Boot2.0之整合Mybatis

    我在写这个教程时候,踩了个坑,一下子折腾到了凌晨两点半. 坑: Spring Boot对于Mysql8.1的驱动支持不好啊 我本地安装的是Mysql8.1版本,在开发时候.pom提示不需要输入驱动版本 ...

  8. 英特尔® Software Guard Extensions 教程系列:第一部分,英特尔® SGX 基础

    英特尔® Software Guard Extensions 教程系列:第一部分,英特尔® SGX 基础 from:https://software.intel.com/zh-cn/articles/ ...

  9. ActorModel 概念翻译

    学习 skynet 时初次接触到 ActorModel 模型,始终觉得有必要从宏观上了解 ActorModel 的概念,所以以维基上这篇文章为参考,把文章中的部分内容翻译成中文,好让自己体会一下 Ac ...

  10. 【LeetCode】Reverse Words in a String 反转字符串中的单词

    一年没有管理博客园了,说来实在惭愧.. 最近开始刷LeetCode,之前没刷过,说来也实在惭愧... 刚开始按 AC Rates 从简单到难刷,觉得略无聊,就决定按 Add Date 刷,以后也可能看 ...