题干:

问题描述

如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。

输入格式

输入包含两个正整数,K和L。

输出格式

输出一个整数,表示答案对1000000007取模后的值。

样例输入

4 2

样例输出

7

数据规模与约定

对于30%的数据,KL <= 106;

对于50%的数据,K <= 16, L <= 10;

对于100%的数据,1 <= K,L <= 100。

解题报告:

这题数据量比较小,可以随便搞(我写了个O(n*k*k)的),其实注意到当前状态只和上一层的两个值有关系,所以复杂度可以优化到O(n*k)。(%syt大佬)

不过如果n和k都是1e6,这题还可以做吗?

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
const int MAX = 2e2 + 5;
const ll mod = 1000000007;
ll dp[MAX][MAX];
int main()
{int k,n;cin>>k>>n;for(int i = 1; i<k; i++) dp[1][i]=1;for(int i = 2; i<=n; i++) {for(int j = 0; j<k; j++) {for(int l = 0; l<k; l++) {if(abs(j-l) == 1) continue;dp[i][j] = (dp[i][j] + dp[i-1][l])%mod;}}}ll ans = 0;for(int i = 0; i<k; i++) {ans = (ans + dp[n][i])%mod;}printf("%lld\n",ans);return 0 ;}

优化:

【蓝桥杯官网试题 - 算法训练 】K好数(线性dp与优化)相关推荐

  1. 【蓝桥杯官网试题 -算法训练】素因子去重(数学,数论,因子约数)

    题干: 问题描述 给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1 输入格式 一个整数,表示n 输出格式 输出一行,包含一个整数p. 样例输入 1000 样例输 ...

  2. 【蓝桥杯官网试题 - 算法训练 】P0502(乱搞,tricks)

    题干: 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20.然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来.如果有两个 ...

  3. 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)

    题干: 问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大.并且要求你选定的数对的ai之和非负,bi之和非负. 输入格式 输入的第一行为n,数对的个数 ...

  4. 【蓝桥杯官网试题 - 算法提高 】P0404(模拟)

    题干: 计算一个无符号整数的阿尔法乘积.对于一个无符号整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身:否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所 ...

  5. 蓝桥杯官网 试题 PREV-61 历届真题 装饰珠【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  6. 蓝桥杯官网 试题 PREV-240 历届真题 答疑【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  7. 蓝桥杯官网 试题 PREV-109 历届真题 扫地机器人【第十届】【省赛】【研究生组】【C++】【Java】【Python】三种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  8. 蓝桥杯官网 试题 PREV-265 历届真题 砝码称重【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  9. 算法训练 K好数(dp+动态规划)

    问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22 ...

最新文章

  1. 高手都这么给 Spring MVC 做单元测试!
  2. ASP.NET MVC4 路由的配置 十种方法
  3. Micropython教程之TPYBoardv102 DIY蓝牙智能小车实例
  4. 常用DOS系统功能调用(INT 21H)一览表
  5. 基于webRTC技术 音频和视频,IM解
  6. java–jwt_java – Spring引导如何使用jwt管理用户角色
  7. [react] 举例说明useState
  8. 数据结构之优先队列:优先队列的介绍与基础操作实现,Python代码实现——14
  9. R语言聚类算法之系谱聚类(Hierarchical Method)
  10. Java 语言基础(一)
  11. “让我陪你走到人生的尽头。” | 也许AI能提供更好的临终关怀
  12. 2016 Multi-University Training Contest 1 T4
  13. vmware中的linux虚拟机如何增加磁盘容量
  14. hibernate 多对多操作(级联操作)
  15. 3D卡通风格简单场景设计教程(Design by 水煮豆豆)
  16. 环评师考各个科目有哪些备考的好方法?
  17. Excel常用快捷键与打印
  18. 微信长按网页保存为截图
  19. FreeRTOS学习笔记 2 - 任务
  20. Office VBA开发经典-中级进阶卷(75元包邮)

热门文章

  1. Js实现异步刷新(原创)
  2. 【转】在C#中使用SQLite
  3. HDOJ-1257 最少拦截系统
  4. 主存和cache每一块相等_CPU中的Cache实现原理
  5. const的用法以及与define使用的区别
  6. 7-2 地下迷宫探索 (30 分)(C语言实现)
  7. swift 隐藏状态栏_如何在Swift iOS应用中隐藏状态栏?
  8. 微博air客户端_打磨近十年,接近「完美」的 macOS 第三方微博客户端:Maipo
  9. kcbzps oracle_Oracle 11g DRCP配置与使用(上)
  10. rapidxml在qt linux(gcc)下写xml文件出错