首页 > 编程语言 > 详细

算法训练 K好数

时间:2016-01-22 22:01:18      阅读:503      评论:0      收藏:0      [点我收藏+]
技术分享
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 using namespace std;
 6 const int maxn=150;
 7 const int mod=1000000007;
 8 int dp[maxn][maxn];
 9 
10 int main()
11 {
12     int k,l;
13     while(~scanf("%d%d",&k,&l))
14     {
15         memset(dp,0,sizeof(dp));
16         int sum1,sum2;
17         sum1=k-1;
18         for(int j=1;j<k;j++)
19             dp[1][j]=1;
20         for(int i=2;i<=l;i++)
21         {
22             sum2=0;
23             dp[i][0]=(sum1-dp[i-1][1]+mod)%mod;
24             sum2=dp[i][0];
25             for(int j=1;j<k-1;j++)    
26             {
27                 dp[i][j]=(((sum1-dp[i-1][j-1]+mod)%mod)-dp[i-1][j+1]+mod)%mod;
28                 sum2=(sum2+dp[i][j])%mod;
29             }
30             dp[i][k-1]=(sum1-dp[i-1][k-2]+mod)%mod;
31             sum2=(sum2+dp[i][k-1])%mod;
32             sum1=sum2;
33         }    
34         printf("%d\n",sum1);
35         
36         
37 
38     }    
39     return 0;
40 }
View Code

参考:http://blog.csdn.net/caduca/article/details/44926551 

第一次做dp题目,还是没有搞得太明白。在做几道题试试吧

 

算法训练 K好数

原文:http://www.cnblogs.com/WDKER/p/5152213.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!