LightOj 1122 Digit Count(数位dp)

Digit Counts 解题报告 Digit CountsDescriptionCount the number of k’s between 0 and n. k can be 0 - 9.Exampleif n = 12, k = 1 in[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]we have FIVE 1’s (1, 10, 11, 12)实现思路本题最简单的实现,就是遍历一个1~n 阅读详情

Digit Count

Description

Given a set of digits S, and an integer n, you have to find how many n-digit integers are there, which contain digits that belong to S and the difference between any two adjacent digits is not more than two.

Input

Input starts with an integer T (≤ 300), denoting the number of test cases.

Each case contains two integers, m (1 ≤ m < 10) and n (1 ≤ n ≤ 10). The next line will contain m integers (from 1 to 9) separated by spaces. These integers form the set S as described above. These integers will be distinct and given in ascending order.

Output

For each case, print the case number and the number of valid n-digit integers in a single line.

Sample Input

3

3 2

1 3 6

3 2

1 2 3

3 3

1 4 6

Sample Output

Case 1: 5

Case 2: 9

Case 3: 9


解题思路:

题目大意:

给你m种数,要求使用这m种数组成n位整数,使得该数的每位和相邻位的数的差不超过2。

算法思想:

dp[i][j]表示以j结尾的i位整数的解法数目。 

dp[i][j] += dp[i-1][k] , abs(j-k) <= 2

答案即为sum(dp[n][i](1<=i<=9,且i在集合S中))

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;

int a[15];
int dp[15][15];

int main(){
    int T,t = 1;
    scanf("%d",&T);
    while(T--){
        int x,m,n;
        scanf("%d%d",&m,&n);
        memset(a,0,sizeof(a));
        memset(dp,0,sizeof(dp));
        for(int i = 1; i <= m; i++){
            scanf("%d",&x);
            a[x] = 1;
        }
        for(int i = 1; i <= 9; i++){
            if(a[i])
                dp[1][i] = 1;
        }
        for(int i = 2; i <= n; i++){
            for(int j = 1;j <= 9; j++){
                if(a[j])
                    dp[i][j] = 0;
                for(int k = 1; k <= 9; k++){
                    if(a[k] && abs(j-k) <= 2)
                        dp[i][j] += dp[i-1][k];
                }
            }
        }
        int ans = 0;
        for(int i = 1; i <= 9; i++){
            if(a[i])
                ans += dp[n][i];
        }
        printf("Case %d: %d\n",t++,ans);
    }
    return 0;
}


抖音X-Medusa风控逆向:unidbg环境重建与魔改AES还原 X-Medusa并非传统加密算法,而是深度耦合运行时环境的动态混淆系统,其核心是硬件指纹感知、线程上下文绑定与非标AES变异。理解其原理需跳出‘找密钥’思维,转向对CPU型号、系统属性、微秒级时间及内存布局的综合建模。技术价值在于将不可控的客户端风控,转化为可复现、可配置、可运维的服务化能力;典型应用场景包括合规数据采集、API协议适配与移动安全研究。本文聚焦Android native层逆向实践,基于unidbg实现高保真环境模拟,并完整还原S-Box动态生成、MixColumns矩阵变异与轮密钥XOR扰 阅读详情

相关推荐

阿里平头哥与华为芯片的比较

阿里平头哥与华为芯片代表了中国AI芯片领域的两种典型发展路径:平头哥通过兼容CUDA生态快速切入市场,以较低成本提供接近国际水平的AI算力;华为则坚持全栈自研路线,构建从芯片到框架的完整技术体系,更注重供应链安全和自主可控。从短期来看,平头哥PPU在单卡性能参数上全面超越昇腾910B,接近英伟达H20水平,且成本优势明显,有望在云服务和互联网应用领域取得更大市场份额。而华为昇腾则凭借全栈自研和端边云协同优势,在政企市场和科研领域更具竞争力。

shao.bing的专栏 3971

Digit (数位DP)

一个正整数的价值就是把这个数的十进制写出来之后,最长的等差子串的长度。 求出在[l,r]范围内的数字的价值总和。 (l<=r<=10^12) 记f[now,ml,l,d,pre,st,lim] 为当前状态下ans的值 now  第now位ml   所求的的等差数列最长长度l   当前所求等差数列的长度d 公差为dst ...

aekijekzn484879763的博客 487

Monocle2在R 4.3环境下的终极避坑指南:从安装到可视化全流程解析

本文提供了在R 4.3环境下安装和运行Monocle2的完整解决方案,重点解决了依赖包兼容性、源码修改及BEAM分析报错等关键问题。文章详细解析了从环境准备、依赖包处理、源码安装验证到从Seurat对象转换、拟时轨迹构建、高级可视化及性能优化的全流程,旨在帮助用户顺利完成单细胞拟时分析。

weixin_29206669的博客 1353

LightOJ 1122 - Digit Count

Given a set of digits S, and an integer n, you have to find how many n-digit integers are there, which contain digits that belong to S and the difference between any two adjacent digits is not mo...

den11551的博客 212

视网膜血管分割数据集(DRIVE数据集,STARE数据集,REFUGE数据集,CHASE_DB1数据集,DiaRetDB1数据集)

在医学图像处理领域,视网膜图像分析对于眼部疾病的早期诊断与治疗具有举足轻重的意义。随着人工智能技术的蓬勃发展,尤其是深度学习算法在图像分割任务中的广泛应用,高质量的视网膜图像数据集成为推动该领域研究进展的关键要素。这些数据集不仅是训练和优化算法模型的基石,更是衡量算法性能优劣的重要依据。本文聚焦于视网膜图像分割领域,详细介绍 DRIVE、STARE、REFUGE、CHASE_DB1 以及 DiaRetDB1 这几个具有代表性的数据集。

weixin_43518285的博客 2270

基于imx6ull平台opencv的图像采集、ffmpeg推流和Windows端拉流(多线程)

本文档是针对imx6ull平台`opencv`的图像采集、ffmpeg推流和Windows端拉流。首先创建一个线程`opencv`通过摄像头采集视频图像,接着再创建两个线程,其中一个线程获取采集的视频图像送给ffmpeg服务,另一个线程用于获取采集的视频图像并处理,处理完并在显示屏上显示,详细的流程请参看如下。

程小二的博客 1607

数位DP

/** 数位dp 求所有比n(1~10^6)小的书中二进制表示法“1”的个数是m的数的个数,dp[i][j]表示以i位数1的个数为j */ #include #include #include #include using namespace std; const int maxn=50; int dp[maxn][maxn],bit[maxn]; int n,m; int dfs(in

ACM,再见! 915

掌握 Unity 中的状态机:综合指南

最后,将拥有一个由状态机驱动的功能齐全的播放器控制器,可以集成到自己的项目中。此外,状态机有助于实现复杂的人工智能、玩家控制、动画系统等,从而形成更强大、更灵活的游戏架构。状态机是计算机科学和游戏开发中的一个基本概念,它通过定义一组有限的状态及其之间的转换来模拟实体的行为。你可以定义常见的状态行为,例如 Enter、Update 和 Exit 方法,确保整个状态机架构的一致性和连贯性。由于前面提到的状态类扩展了 BaseState 类,因此我们可以为具有不同状态的不同对象创建单独的类。

yolo模型训练找我,AI游戏合作找我 1449

Light OJ 1122 Digit Count (简单数位DP)

题意:求长度为n的每一位都属于集合S且相邻位差的绝对值 解析:套模板记忆化搜索。 [code]: #include #include #include #include #include using namespace std; int n,m,a[10],dp[15][15]; int dfs(int i,int s,bool z){ //printf("%d %d %d\n",i,

Neutralzz的博客 289

【OpenClaw从入门到精通】第48篇:企业“养虾”合规手册——审批备案+专网隔离+全流程管控(2026企业版)

随着OpenClaw在企业场景的规模化应用,“无审批部署、无备案运行、无隔离防护”已成为安全事件的主要诱因。本文基于启明星辰《OpenClaw类智能应用安全指引V0.1》,结合金融、能源行业头部企业落地实践,构建“审批-评估-备案-管控”全流程合规框架。核心内容包括四步审批备案流程、专网隔离部署规范、3套可直接复用的合规文档模板(使用申请单、安全评估报告、备案登记表),以及个人使用备案简化方案。通过本文,企业可建立“有据可依、有章可循”的OpenClaw管理体系,实现“专网部署、数据隔离、最小权限、全程监控

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 461

半导体材料仿真:二维材料仿真_(1).二维材料的基本概念

在半导体材料仿真领域,二维材料因其独特的物理和化学性质而受到广泛关注。二维材料,也称为二维纳米材料,是指在二维空间(通常是平面)上具有原子级厚度的材料。这些材料的厚度通常在几个纳米甚至单个原子层的范围内,使得它们在电子、光学、热学和机械性能上表现出与传统三维材料显著不同的特性。本节将详细介绍二维材料的基本概念,包括它们的分类、结构、性质以及在半导体材料仿真中的应用。

2401_87715305的博客 1544

lightoj 1122 - Digit Count 简单DP

给定m个数字(范围1-9)和一个n,问能组成一个n位且相邻两位数字差值小于2的数字有多少个? 当然看完题就愣了,因为前面的题很难啊...难道是数位DP? 按捺下怀疑的心情写完AC心情很复杂... dp[i][j]代表排好了前i位最后一位是第j个数字有多少种方法,所以对于下一个数字的添加,要判断和最后一位数字差值是否小于2... 三重循环,范围只有10嘛... #include using

465

基于STM32L4XX、HAL库的ICP-10111压力传感器驱动程序设计

define ICP10111_CMD_MEAS_ULN 0x7866 // 超低噪声模式。#define ICP10111_CMD_MEAS_LP 0x609C // 低功耗模式。#define ICP10111_CMD_MEAS_LN 0x70DF // 低噪声模式。#define ICP10111_CMD_MEAS_N 0x6825 // 正常模式。ICP10111_MODE_LN, // 低噪声。// 等待测量完成(根据模式不同等待时间不同)

zhusl6688的博客 415

lightoj-1122 - Digit Count dp

1122 - Digit Count     PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Given a set of digits S, and an integer n, you have to find h

Cosiness的博客 1042

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Lightoj 1122 - Digit Count 【DP】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1122题意:给你m个数,选取n个数组成一个整数,使得整数各位的最大数与最小数的差小于2。问有几种选法?解法:DP。dp[i][j]表示以j结尾的i位整数的解法数目。 答案即为sum(dp[n][k] (1<=k<=9,且k在集合S中) )代码:#include <stdio.h>

mfcheer 1751

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LightOJ - 1122 Digit Count(DP)

题目大意:给你M种数,要求使用这M种数组成N位整数,使得该数的每位和相邻位的数的差不超过2解题思路:用dp[i][m]表示组成了i位的数,最后一位是m的情况有多少种 接着得到转移dp,dp[i][m] += dp[i - 1][k] , abs(m - k) <= 2#include <cstdio> #include <queue> #include <cstring> #include <cs

静静地码 827

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【LightOJ】1122 - Digit Count(bfs)

点击打开题目 1122 - Digit Count     PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Given a set of digits S, and an integer n, you ha

wyg1997 1136

count 数字计数 (数位dp)

给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。Input输入文件中仅包含一行两个整数a、b,含义如上所述。Output输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次。Sample Input 1 99 Sample Output 9 20 20 20 20 20 20 20 20 20 Hint 30%的数据中,a

a1046765624的博客 2167

面试中这些“陷阱”,你确定都能避开?

   在各种面试“陷阱”中,最难提防、最具危险的,可能要算“引君入瓮”式的语言陷阱。   比如,你去应聘一家公司的财务经理,面试官也许会突然问你:“您作为财务经理,如果我(总经理)要求你1年之内逃税100万元,那你会怎么做?”如果你当场抓耳挠腮地思考逃税计谋,或文思泉涌立即列出一大堆逃税方案,那么你就上了圈套,掉进了陷阱。因为抛出这个问题的面试官,正是以此来测试你的商业判断能力和商业

647

lightoj-1122-Digit Count【DP】

题目链接:点击打开链接 1122 - Digit Count     PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Given a set of digits S, and an integer n, you

_Somethingwill 457

【LightOJ 1122 + dp】

Description Given a set of digits S, and an integer n, you have to find how many n-digit integers are there, which contain digits that belong to S and the difference between any two adjacent digits is

楚江枫 1365

F - Digits Paradise in Hexadecimal(数位dp)

F - Digits Paradise in Hexadecimal(数位dp) 题意 在161616进制下,[1,n][1,n][1,n]进制位上出现kkk种不同数的个数。 思路 显然数位dpdpdp,此种题一般用状压维护状态,然后就裸了。 code // Problem: F - Digits Paradise in Hexadecimal // Contest: AtCoder - AtCoder Beginner Contest 194 // URL: https://atcoder.jp/cont

Harris-H的博客 669

数位dp合集

HDU - 3652 - B-number 题目链接&lt;http://acm.hdu.edu.cn/showproblem.php?pid=3652&gt; 题意: 输出1~n中包含“13”且能被13整除的个数。(1 &lt;= n &lt;= 1000000000) 题解: 数位dp的关键就是状态的选取。 这道题的“13”是否被包含很好处理。要保证被13整除只需再添加一维记录余数...

Eliot的博客 412

找最长等差数列的长度

找最长等差数列的长度

成功=坚持+努力+目标 2608
上一篇: FZU 1055 赋值问题(细节决定成败)
下一篇: HYSBZ 1090 字符串折叠(区间dp)
yphacker
博客等级 码龄12年 199粉丝 540原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值