心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
简单的组合计数,算是DP吧。很简单的,分“上一位数是0”和“上一位数不是0”讨论即可。同时注意到第1位不能是0。
以下是我的代码:
#include<iostream>
using namespace std;
long n,k;
long dp(long i,long j)
{
    
if(i==1return (k-1)*dp(i+1,1);
    
if(i==n)
    {
        
if(j) return k;
        
else return (k-1);
    }
    
if(j) return (k-1)*dp(i+1,1)+dp(i+1,0);
    
else return (k-1)*dp(i+1,1);
}
int main()
{
    
/*
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    //
*/
    cin
>>n>>k;
    cout
<<dp(1,1)<<endl;
return 0;
}


posted on 2010-07-09 15:40 lee1r 阅读(312) 评论(1)  编辑 收藏 引用 所属分类: 题目分类:数学/数论

FeedBack:
# re: Ural 1009 K-based numbers
2010-07-09 16:35 | Tanky Woo
zro  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理