博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法训练 K好数
阅读量:4655 次
发布时间:2019-06-09

本文共 717 字,大约阅读时间需要 2 分钟。

算法训练 K好数  
时间限制:1.0s   内存限制:256.0MB
      
问题描述

如果一个自然数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。

思路:对动态规划的掌握还是不够深刻。

数组a[i][j]表示第i位放置数字j的时候k好数的数量,比如,放第3位的时候会用到放第二位的时候的结果,放第二位时又有很多可能,所以得把每一种加起来。

a[i][j]=a[i-1][u],u∈(0,k-1)。最后再注意最高位不能放0.

#include 
#include
using namespace std;int main(){ int l,k; long long sum=0; long long int a[111][111]={
0}; scanf("%d %d",&k,&l); for(int i=0;i

 

转载于:https://www.cnblogs.com/TWS-YIFEI/p/6347186.html

你可能感兴趣的文章
如何使用 JDBC 调用存储在数据库中的函数或存储过程
查看>>
Js通过原型继承创建子类
查看>>
HTML5 网页 漂浮窗广告 JavaScript逻辑 - demo
查看>>
使用一条SQL语句删除表中重复记录
查看>>
教程-Win7极速优化20项
查看>>
CF1083B The Fair Nut and String
查看>>
mac上卸载jdk 步骤
查看>>
Old Sorting(转化成单调序列的最小次数,置换群思想)
查看>>
C的|、||、&、&&、异或、~、!运算(转)
查看>>
迷宫城堡(强联通targin)
查看>>
easyUI添加修改tab页(toolbar)
查看>>
JavaScript笔试题
查看>>
Leetcode 969. Pancake Sorting
查看>>
set()集合的概念与一般操作
查看>>
winform - ComboBox_ListView2
查看>>
react中递归生成列表
查看>>
内置函数filter
查看>>
FIREDAC TFDCONNECTION连接ORACLE
查看>>
【LeetCode从零单排】No 114 Flatten Binary Tree to Linked List
查看>>
Effective Go(官方文档)笔记
查看>>