zoukankan      html  css  js  c++  java
  • poj1664

    题意:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

    分析:dp,我们认为每个盘子所放的苹果数组成的数列是降序的,讨论最后一个盘子放不放苹果,若放则前面每个盘子都放,方法数相当于把每盘方一个之后剩下的m-n个苹果往n个盘子里放,若不放则相当于把m个苹果放入n-1个盘子。

    View Code
    #include <iostream>
    #include
    <cstdio>
    #include
    <cstdlib>
    #include
    <cstring>
    usingnamespace std;

    #define maxn 11

    int f[maxn][maxn];

    int main()
    {
    //freopen("t.txt", "r", stdin);
    for (int i =0; i < maxn; i++)
    f[i][
    0] =1;
    for (int i =0; i < maxn; i++)
    f[
    0][i] =0;
    for (int i =1; i < maxn; i++)
    for (int j =1; j < maxn; j++)
    if (j >= i)
    f[i][j]
    = f[i][j - i] + f[i -1][j];
    else
    f[i][j]
    = f[j][j];
    int t;
    int m, n;
    scanf(
    "%d", &t);
    while (t--)
    {
    scanf(
    "%d%d", &m, &n);
    printf(
    "%d\n", f[n][m]);
    }
    return0;
    }
  • 相关阅读:
    RHEL6.x 删除Oracle11g
    通过IPV6上QQ及自建IPV6代理的方法
    Carrier frequency and EARFCN
    FDD LTE frequency band allocations
    Cmake参考资料
    sigal & mq_notify
    哈夫曼编码与解码
    哈夫曼数与哈夫曼编码
    算法做题顺序
    我的大学
  • 原文地址:https://www.cnblogs.com/rainydays/p/2082958.html
Copyright © 2011-2022 走看看