POJ 1664 放苹果 (递推)

Posted Recoder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1664 放苹果 (递推)相关的知识,希望对你有一定的参考价值。

题目链接:http://poj.org/problem?id=1664

dp[i][j]表示i个盘放j个苹果的方案数,dp[i][j] 可以由 dp[i - 1][j] 和 dp[i][j - i] 递推而来。

当盘子的个数大于等于苹果的个数:

  dp[i - 1][j] :i - 1个盘子放j个苹果,说明i个盘子里最少有一个盘子是空的

  dp[i][j - i] :i个盘子都放了苹果,说明有j - i个苹果是随便放置的

否则:

  dp[i][j] = dp[i - 1][j]

然后没有苹果的盘子的方案为1,即dp[i][0] = 1

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 using namespace std;
 6 int dp[15][15];
 7 int main()
 8 {
 9     for(int i = 1 ; i <= 10 ; ++i)
10         dp[i][0] = 1;
11     for(int i = 1 ; i <= 10 ; ++i) {
12         for(int j = 1 ; j <= 10 ; ++j) {
13             if(j - i >= 0)
14                 dp[i][j] = dp[i - 1][j] + dp[i][j - i];
15             else
16                 dp[i][j] = dp[i - 1][j];
17         }
18     }
19     int t , n , m;
20     cin >> t;
21     while(t--) {
22         cin >> m >> n;
23         cout << dp[n][m] << endl;
24     }
25 }

 

以上是关于POJ 1664 放苹果 (递推)的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1664 放苹果

递推:POJ中的三道递推例题POJ 1664POJ 2247和POJ 1338

POJ1664 放苹果

POJ 1664 放苹果

poj 1664 放苹果(dfs)

poj1664 放苹果(DPorDFS)&&系列突破(整数划分)