ural 1009
2015-09-14 10:58
387 查看
1009. K-based Numbers
Time limit: 1.0 secondMemory limit: 64 MB
Let’s consider K-based numbers, containing exactly N digits. We define a number to be valid if its K-based notation doesn’t contain two successive zeros. For example:
1010230 is a valid 7-digit number;
1000198 is not a valid number;
0001235 is not a 7-digit number, it is a 4-digit number.
Given two numbers N and K, you are to calculate an amount of valid K based numbers, containing N digits.
You may assume that 2 ≤ K ≤ 10; N ≥ 2; N + K ≤ 18.
Input
The numbers N and K in decimal notation separated by the line break.
Output
The result in decimal notation.
Sample
input | output |
---|---|
2 10 | 90 |
dp[i][0] 表示前i位有多少种,并且第i位不是0, dp[i][1] 表示前i位有多少种, 并且第i位是0;
转移方程:
dp[i][0] = dp[i-1][0] * (k-1) + dp[i-1][1]*(k-1);
dp[i][1] = dp[i-1][0];
并且:
dp[1][0] = k-1;
dp[1][1] = 0;
#include <bits/stdc++.h> using namespace std; int n,k; long long dp[30][3]; int main(){ cin>>n>>k; dp[1][0] = k-1; dp[1][1] = 0; for(int i=2; i<=n; i++){ dp[i][0] = dp[i-1][0] * (k-1) + dp[i-1][1]*(k-1); dp[i][1] = dp[i-1][0]; } cout<<dp [0]+dp [1]<<endl; return 0; }
相关文章推荐
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- LFC1.0.0 版本发布
- Android px、dp、sp之间相互转换
- android中像素单位dp、px、pt、sp的比较
- Android对px和dip进行尺寸转换的方法
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- android 尺寸 dp,sp,px,dip,pt详解
- DP问题各种模型的状态转移方程
- POJ-1695-Magazine Delivery-dp
- nyoj-1216-整理图书-dp
- TYVJ1193 括号序列解题报告
- 对DP的一点感想
- TYVJ上一些DP的解题报告
- soj1005. Roll Playing Games
- 01背包问题
- LeetCode之Maximum Product Subarray
- DP Flow
- zoj3605 Find the Marble(三维dp)
- Word Break I,II, Triangle,Palindrome Partitioning 动态规划 DP