NY10E - Non-Decreasing Digits
A number is said to be made up of non-decreasing digits if all the digits to the left of any digit is less than or equal to that digit.For example, the four-digit number 1234 is composed of digits that are non-decreasing. Some other four-digit numbers that are composed of non-decreasing digits are 0011, 1111, 1112, 1122, 2223. As it turns out, there are exactly 715 four-digit numbers composed of non-decreasing digits.
Notice that leading zeroes are required: 0000, 0001, 0002 are all valid four-digit numbers with non-decreasing digits.
For this problem, you will write a program that determines how many such numbers there are with a specified number of digits.
Notice that leading zeroes are required: 0000, 0001, 0002 are all valid four-digit numbers with non-decreasing digits.
For this problem, you will write a program that determines how many such numbers there are with a specified number of digits.
Input
The first line of input contains a single integer P, (1 ≤ P ≤ 1000), which is the number of data sets that follow. Each data set is a single line that contains the data set number, followed by a space, followed by a decimal integer giving the number of digits N, (1 ≤ N ≤ 64).
Output
For each data set there is one line of output. It contains the data set number followed by a single space, followed by the number of N digit values that are composed entirely of non-decreasing digits.
Example
Input: 3 1 2 2 3 3 4 Output: 1 55 2 220 3 715
---------------------------------code------------------------------------------------------------------#include<bits/stdc++.h>
using namespace std;
typedef long long int lli;
lli dp[70][10];
int n;
lli solve(int idx,int last)
{
if(idx==n) return 1;
else if(dp[idx][last]!=-1) return dp[idx][last];
else
{
lli ret=0;
for(int i=0;i<=9;i++)
{
if(i>=last)
ret+=solve(idx+1,i);
}
dp[idx][last]=ret;
return ret;
}
}
int main()
{
int t;
cin>>t;
while(t--)
{
int tt;
cin>>tt>>n;
lli ans=0;
for(int i=0;i<=9;i++)
{
memset(dp,-1,sizeof dp);
ans+=solve(1,i);
}
cout<<tt<<" "<<ans<<endl;
}
}
No comments:
Post a Comment