zoukankan      html  css  js  c++  java
  • poj3014

    题意:把n个一样的蛋糕放进m个一样的盘子,有多少种方法。

    分析:dp,f[i][j]表示i个盘子装j个蛋糕的方法数。分两种情况,有空盘方法数为f[i - 1][j](撤掉一个空盘),无空盘的方法数为f[i][j - i](每个盘子撤掉一个蛋糕)。采用滚动数组。

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

    #define maxn 4505
    #define w 1000000007

    int n, m;
    int f[2][maxn];

    int main()
    {
    //freopen("t.txt", "r", stdin);
    scanf("%d%d", &m, &n);
    if (m > n)
    m
    = n;
    for (int i = 1; i <= n; i++)
    f[
    1][i] = 1;
    f[
    0][0] = f[1][0] = 1;
    for (int i = 2; i <= m; i++)
    {
    for (int j = 1; j <= n; j++)
    f[i
    & 1][j] = f[(i - 1) & 1][j];
    for (int j = i; j <= n; j++)
    f[i
    & 1][j] = (f[i & 1][j] + f[i & 1][j - i]) % w;
    }
    printf(
    "%d\n", f[m & 1][n]);
    return 0;
    }
  • 相关阅读:
    浏览器兼容性问题
    浏览器对象的属性和方法
    js总结体会
    css样式总结体会
    HTML标签类总结
    如何自动化实现二级域名访问,类似博客
    php
    require.js
    gulp
    javascript
  • 原文地址:https://www.cnblogs.com/rainydays/p/2177389.html
Copyright © 2011-2022 走看看