贴一下我做的dp的答案把 while(sc.hasNext()){ n=sc.nextInt(); k=sc.nextInt(); d=sc.nextInt(); ans=0; /*backtrack(0,0); System.out.println(ans);*/ int[][] dp=new int[n+1][2]; for (int i = 0; i < d; i++) { dp[i][1]=0; } dp[1][0]=1; dp[0][0]=1; for (int i = 2; i <= n; i++) { for (int j = 1; j <= k; j++) { if(i-j<0)continue; if(j<d) { dp[i][0]+=dp[i-j][0]; dp[i][1] += dp[i - j][1]; } else { dp[i][1] +=dp[i - j][1] + dp[i - j][0]; } } } System.out.println(dp[n][1]); }

相关推荐

不愿透露姓名的神秘牛友
10-03 18:53
已编辑
歌尔股份 软件研发岗 14K×14薪 硕士211
给你点了个赞的打工鸭很忙碌:校友那个专业的呢?聊聊吗?我电科的
点赞 评论 收藏
分享
牛客网
牛客企业服务