zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    字符串
    zval结构体
    需要优化代码的leetcode
    删除字符串中的字符
    python 目录
    文件
    awk 复习
    链表和数组的说法
    在linux服务器新添加硬盘,如何识别、挂载。
    Linux 的 date 日期的使用
  • 原文地址:https://www.cnblogs.com/Recoder/p/5543836.html
Copyright © 2011-2022 走看看