zoukankan      html  css  js  c++  java
  • 盒子放球的DP

    URAL1114

    题目大意:

    有N个盒子,有红色和蓝色两种颜色的球。红球有A个,篮球有B个。现在随意的向盒子里放球,

    每个盒子可以放一种颜色的球,也可以放两种颜色的球,也可以不放球。球不必全都放进盒子里。问:总共有多少种方法。

    状态dp[i][j][k] 表示向i个盒子里放j个篮球和k个红球的方案数目

    状态转移方程:dp[i][j][k]=对dp[i-1][jj][kk] (0<=jj<=j,0<=kk<=k) 求和

      最终结果是:在n个盒子里放  不定数目的球的种类数和即   对dp[n][i][j](0<=i<=A,0<=j<=B)求和。

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    using namespace std;
    int n,a,b;
    typedef unsigned long long ull;
    //前 i 个 盒子里放 j 个a   k 个b 的方案数
    ull dp[25][25][25],fin;
    int main()
    {
        while(scanf("%d%d%d",&n,&a,&b)!=EOF)
        {
            memset(dp,0,sizeof(dp));
            dp[0][0][0]=1;          //d p[0][a][b]=1;
            fin=0;
            for(int i=1;i<=n;i++)
                for(int j=0;j<=a;j++)
                    for(int k=0;k<=b;k++)
                    {
                        for(int jj=0;jj<=j;jj++)    //j j=j
                            for(int kk=0;kk<=k;kk++)
                                dp[i][j][k]+=dp[i-1][jj][kk];
                        if(i==n) fin+=dp[i][j][k];              //fin+=
                    }
    
            cout<<fin<<endl;
        }
        return 0;
    }
    

      

    落霞与孤鹜齐飞,秋水共长天一色
  • 相关阅读:
    docker-compose 命令不存在
    linux安装rabbitmq ssm集成rabbitmq
    tomcat参数错误 服务器400
    无限极分内 自联查询
    图片移入变大 点击图片切换 点击按钮显示图片
    js正则表达式基本书写
    随鼠标移动
    输入电话号码
    添加新句子
    窗口的弹出与关闭
  • 原文地址:https://www.cnblogs.com/star-and-me/p/6910429.html
Copyright © 2011-2022 走看看