首页 > 其他分享 >蓝桥杯题目-可构造的序列总数

蓝桥杯题目-可构造的序列总数

时间:2024-03-19 21:01:30浏览次数:20  
标签:题目 int long 蓝桥 序列 const dp

链接

可构造的序列总数 - 蓝桥云课 (lanqiao.cn)

知识点

动态规划

思路

        定义dp[i][j]表示序列长度为i,以j结尾的合法序列的数量 ,初始化时有 dp[1][i] = 1。因为题意要求 ai 是ai-1 的倍数,所以在转移时每个数应该从它的因子转移过来,即:

                                        dp[i][j]=dp[i][j]+dp[i-1][j的因数]

代码

#include <bits/stdc++.h>
using namespace std;

const int N=2005;
const int mod=1e9+7;
long long dp[N][N]; //dp[i][j]表示序列长度为i,以j结尾的合法序列的数量 

int main()
{
  int n,k;
  cin>>k>>n;
  for(int i=1;i<=k;i++){
    dp[1][i]=1;  //只有一个数的时候每一个都只能选自己
  }
  
  //以9举例子:
  //dp[i][9]=dp[i-1][1]+dp[i-1][3]+dp[i-1][9]
  
  for(int i = 2;i <= n; i++){  //序列长度的取值
    for(int j = 1;j <= k; j++){ //枚举序列中最大的那个数
      for(int t = 1;t <= sqrt(j); t++){ //这个是枚举那个数是可以的
        if(t == sqrt(j)){  //刚好是j的平方根的时候只有一个数
          dp[i][j] = (dp[i][j] + dp[i-1][t]) % mod;
        }
        else if(j % t == 0){ //当前的数是因子
        
          dp[i][j] = (dp[i][j] + dp[i-1][t] + dp[i-1][j/t]) % mod;
          //把是因数的都加起来  当j%t==0的时候会有两个因数成立的
        }
      }
    } 
  }
  
  long long ans=0;
  for(int i = 1;i <= k; i++){  //对序列长度为n符合序列进行求和
    ans=(ans + dp[n][i]) % mod;  //序列长度是n的以i为最大的那个数的和
  }
  cout<<ans;
  return 0;
}

标签:题目,int,long,蓝桥,序列,const,dp
From: https://blog.csdn.net/m0_72972329/article/details/136854206

相关文章

  • 【蓝桥杯选拔赛真题70】python最短路径和 第十五届青少年组蓝桥杯python选拔赛真题 算
    目录python最短路径和一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、 推荐资料1、蓝桥杯比赛2、考级资料3、其它资料python最短路径和第十五届蓝桥杯青少年组python比赛选拔赛真题一、题目要求(注:i......
  • 码蹄集2023部分题目(第二弹)
    5......
  • Prufer序列
    基本信息定义:prufer序列是无根树和序列的双向映射,并且描述了节点读书以及父节点的信息。使用场景:将构造树的问题转化为构造序列,将统计树的问题转化为统计序列,将树的dp转化为序列的dp。如何得到prufer序列?统计树上的所有节点的度数\(d_i\)。找到所有度数为\(1\)的节点......
  • 蓝桥杯单片机快速开发笔记——超声波测距
    一、原理分析        超声波测距是一种常见的测距方法,其原理是利用超声波在空气中传播的速度恒定且较快的特性,通过发送超声波信号并接收回波,计算出物体与传感器之间的距离。以下是超声波测距的原理和应用:原理:发送超声波信号:超声波传感器发送一个短脉冲的超声波信......
  • R语言k-Shape时间序列聚类方法对股票价格时间序列聚类|附代码数据
    原文链接:http://tecdat.cn/?p=3726最近我们被客户要求撰写关于时间序列聚类的研究报告,包括一些图形和统计输出。本文我们将使用k-Shape时间序列聚类方法检查与我们有业务关系的公司的股票收益率的时间序列企业对企业交易和股票价格在本研究中,我们将研究具有交易关系的公司的......
  • 蓝桥杯 X进制减法
    注意,一定不要给(A[i]-B[i])*w取模,因为它可能是负数!!!这个错误我检查了俩小时,呜呜呜呜呜呜呜除此之外这题只要思路对了,难度是比较小的题目思路:1.反向输入,因为权重和题目顺序是相反的      2.B数组的大小要和A一样,因为A长度比较大,或者二者一样长  ......
  • 用 滑动窗口 算法 解决 蓝桥杯子矩阵 的运行超时 问题
    这题如果用暴力算法解决,会用到四个for循环。当数据很大时,会超时,无法通过蓝桥杯。如果掌握了二维滑动窗口,会让时间复杂度减少俩个数量级,很好地解决超时的问题。关于滑动窗口算法,如果读者不会的话,建议去哔站看大佬的讲解视频,笔者也是昨天才学的。如果已经会了滑动窗口算法,......
  • P8685 [蓝桥杯 2019 省 A] 外卖店优先级
    这道题虽然难度很低,但是细节不少1.要先处理减,再处理加。因为是先经历了空档期的优先级衰减,然后才有订单带来的优先级提升;先减后加的时候有0这个下限兜底,如果先加后减可能会导致答案偏小。2.减之后和加之后都要check一下,如果in_cache为true,减完之后小于等于三,但是加了以后又上升......
  • 资源加载和序列化
    一切加载最后都要跑到LoadPackageInternal:创建Linker序列化(LoadAllObjects){ FUObjectSerializeContext*InOutLoadContext=LoadContext; Linker=GetPackageLinker(InOuter,PackagePath,LoadFlags,nullptr,InReaderOverride,&InOutLoadContext,ImportLinker,In......
  • 2024 蓝桥打卡Day15
    洛谷刷题P8752[蓝桥杯2021省B2]特殊年份题目[P8752[蓝桥杯2021省B2]特殊年份](https://www.luogu.com.cn/problem/P8752)题解P8780[蓝桥杯2022省B]刷题统计题目[P8780[蓝桥杯2022省B]刷题统计](https://www.luogu.com.cn/problem/P8780)题解P......