1147.Sam数

2024-01-30 09:08
文章标签 sam 1147

本文主要是介绍1147.Sam数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1147.Sam数

时间限制:1000MS内存限制:128000KB

题目描述

   小G最近发现了一种非常有趣的数,他将这种数称之为Sam数。Sam数具有以下特征:相邻两位的数字之差不超过2。小G还将Sam数按位数进行了分类,他将一个k位Sam数称之为k阶Sam数。但不幸的是小G发现他数不清第k阶的Sam数一共有多少个,这个时候机智的他想到了向你求助。
 

输入

第一行为一个整数k,含义见题面。

输出

一行一个整数ans,表示k阶的Sam数的个数。
由于第k阶Sam数非常多,你只需要输出ans mod 1,000,000,007。

输入样例复制

输出样例复制

867

说明

【数据规模和约定】 对于30%的数据,1 ≤ k ≤ 6。 对于60%的数据,1 ≤ k ≤ 1000。 对于100%的数据,1 ≤ k ≤ 1000000。

 

 

题意:

    在k位数中,满足相邻俩位之差不过2;例如,1234,可以

1357,可以,5357,可以、531-1,不行;

有一点很坑:k=1时,答案是10;

解法:

啧啧,似乎是DP,看到这一题我第一想法是打表,

先讲打表:

   因为数30 percent 数据只有6位,所以说开另一个程序,用6个for枚举6位数得到结果,就在程序中直接输出。

简单易懂对不?

另一种DP:

    f[i][k]=f[i][k]+f[i-1][j];

i表示i位数,k表示以K结尾。J是一个FOR,枚举能放在最后一位的数。

记住初值为1;

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>

using namespace std;

int n,m=1000000007,f[1000005][10],ans;
int main()
{
    
    cin>>n;
    if (n==1)
    {
        cout<<10;
        return 0;
    }
    for (int i=0;i<=9;i++) f[1][i]=1;
    for (int i=2;i<=n;i++)
      for (int j=0;j<=9;j++)
        for (int k=max(0,j-2);k<=min(9,j+2);k++)
          {
              f[i][j]=(long long)(f[i][j]+f[i-1][k])%m; 
          }
    for (int i=1;i<=9;i++)
    {
        ans=(long long)(f[n][i]+ans)%m;
    }
    cout<<ans;
}

    

 

这篇关于1147.Sam数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/659739

相关文章

【LVI-SAM】激光雷达点云处理特征提取LIO-SAM 之FeatureExtraction实现细节

激光雷达点云处理特征提取LIO-SAM 之FeatureExtraction实现细节 1. 特征提取实现过程总结1.0 特征提取过程小结1.1 类 `FeatureExtraction` 的整体结构与作用1.2 详细特征提取的过程1. 平滑度计算(`calculateSmoothness()`)2. 标记遮挡点(`markOccludedPoints()`)3. 特征提取(`extractF

JD 1147:Jugs(一种用最少步骤求解的方法)

OJ题目:click here~~ 题目分析:九度上这道没有要求最少步数,只要得到最后结果即可AC , bfs , dfs都行。最少步骤的方法肯定也能AC啦,分析如下。 输入的三个数:a,b,n;> 由题不定方程ax+by=n必定有解> 如果b=n,则fill B即可,否则用试探法求出这样的两组解(a1,b1)及(a2,b2),其中a1 >0,b1<0;a1是满足方程的最小正整数;a2

Segment Anything Model(SAM)中的Adapter是什么?

在META团队发布的Segment Anything Model (SAM) 中,Adapter 是一种用于提升模型在特定任务或领域上的性能的机制。具体来说,SAM 是一个通用的分割模型,能够处理多种不同类型的图像分割任务,而 Adapter 的引入是为了更好地让模型适应不同的任务需求。 Adapter 的主要功能是: 模块化设计:Adapter 是一种小规模的、可插拔的网络模块,可以在不改

SAM 2: The next generation of Meta Segment Anything Model for videos and images

https://ai.meta.com/blog/segment-anything-2/  https://github.com/facebookresearch/segment-anything-2  https://zhuanlan.zhihu.com/p/712068482

【论文解读】SAM模型超级进化:面向移动端的轻量级SAM,比FastSAM快4倍!(附论文地址)

论文地址:https://arxiv.org/pdf/2306.14289.pdf 这篇论文的标题是《FASTER SEGMENT ANYTHING: TOWARDS LIGHTWEIGHT SAM FOR MOBILE APPLICATIONS》,由Chaoning Zhang等人撰写,发表于2023年。 文章主要探讨了如何将Segment Anything Model(SAM)优化

Sam Grant强势加盟FAF:强强联合,方能所向披靡

区块链技术发展正夯,它的飞速革新与进步为整个互联网,乃至所有新兴领域的发展和进步都提供了不竭动力。而其中的CDN网络,在缓解网络拥堵,提高互联网业务相应度,改善用户体验等方面都具有深远的意义。  CDN的分布式概念与区块链的“去中心化”不谋而合,两者之间有着天然的吻合性。因此,CDN是极为适合区块链的落地应用场景。将区块链技术搭载于CDN加速服务器中,就可以量化用户对于资源的贡献,同时,区块链还

LIO-SAM: 紧耦合的激光与惯导里程计方案

点云PCL免费知识星球,点云论文速读。 标题:LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping 作者:Tixiao Shan, Brendan Englot, Drew Meyers, Wei Wang, Carlo Ratti, and Daniela Rus 来源:分享者 欢迎各位加入免费知识

【C++题解】1147. 求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》 问题:1147. 求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和 类型:函数 题目描述: 求1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/34…的前 n 项的和。 输入: 输入一个整数 n(1≤n≤30)。 输出: 输出一个小数,即前 n 项之和(保留 3 位小数

SAM 2——视频和图像实时实例分割的全新开源模型

引言 源码地址:https://github.com/facebookresearch/segment-anything-2 过去几年,人工智能领域在文本处理的基础人工智能方面取得了显著进步,这些进步改变了从客户服务到法律分析等各个行业。然而,在图像处理方面,我们才刚刚开始。视觉数据的复杂性以及训练模型以准确解释和分析图像的挑战带来了重大障碍。随着研究人员继续探索图像和视频的基础人工智能,人工智