8635 气球

该题有题解

时间限制:500MS  内存限制:1000K
提交次数:204 通过次数:58

题型: 编程题   语言: G++;GCC

Description

    一天,OYY 从外面打完比赛回来,手上拿了很多个气球,颜色各不相同。他见到我,就说,你看,我拿了很多气球!
我膜拜死了!!然后他就问了我一个问题,如果把这里的气球分成若干份。有多少种分法呢?由于我数学非常菜,顿时头晕了,因此希望大家能帮我解答这个问题(@_@))

输入格式

输入数据有2行
第1 行有两个数n,m,分别代表oyy 手上的气球个数和分的份数(n<=10,m<=5)
第2 行有m 个数,分别代表每一份的个数,保证总个数等于n

输出格式

输出数据有1行,输出一个数代表不同分法的总数。

输入样例

3 1
3

输出样例

1

提示

Sample Input2:
4 2
2 2
Sample Output2:
3

题解

由于气球是不同的,假设有n个气球,第一份气球要拿a个,那么就有C(n,a)种情况,假设第二分有b个,那就是C(n,a)*C(n-a,b)种。。。最后一堆不用算,直接是1,注意气球个数可能重复,假设都为k,那答案就要除以一个A(k,k)

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int C(int a,int b)
{long long s1=1,s2=1;for (int i=1;i<=b;i++){s1*=a;a--;s2*=i;}return s1/s2;
}
int A(int a,int b)
{int ans=1;for (int i=1;i<=b;i++){ans*=a;a--;}return ans;
}
int d[20];
int main()
{int a,b,c[20];int ans=1;scanf("%d%d",&a,&b);for (int i=0;i<b;i++){scanf("%d",&c[i]);d[c[i]]++;}int i=0;for (;i<b-1;i++){ans*=C(a,c[i]);a-=c[i];}for (int i=0;i<20;i++)if (d[i]>1){ans/=A(d[i],d[i]);}printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/scaugsh/p/5532547.html

8635 气球(组合数)相关推荐

  1. Codeforces Round #439C 组合数-The Intriguing Obsession

    http://codeforces.com/contest/869/problem/C 给定三种颜色气球的数量, 要求相同颜色或者在不能一个联通块里,或者最短距离大于等于3 问你图的数目. 思路:我们 ...

  2. 链接:https://ac.nowcoder.com/acm/challenge/terminal来源:牛客网 kotori最近迷上了摆气球的游戏。她一共有n种气球,每种气球有无数个。她要拿出若干

    牛客网一战到底题,有点小意思,估计很多人不知道为什么有60%的案例过不了. 原题链接:https://ac.nowcoder.com/acm/challenge/terminal 题目及说明: 题目描 ...

  3. LeetCode简单题之“气球” 的最大数量

    题目 给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球). 字符串 text 中的每个字母最多只能被使用一次.请你返回最多可以 ...

  4. Codeforces Beta Round #95 (Div. 2) 部分解题报告 (dp,组合数,)

    做这样的比赛既考快速编码的能力,还有快速思维的能力.本人很弱,跌了rating..加油!!!.. 第一题上来就把题意理解错了..粗心啊..直接模拟着做就行:1:如果字符串全是大写字母就进行大小写转换: ...

  5. leetcode-452 用最少数量的箭引爆气球

    在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了.开始坐标总是小于结束坐标.平面 ...

  6. 贪心:Burst Balloons 最少次数完成射击气球

    已知在一个平面上有一定数量的气球,平面可以看作一个坐标系,在平面的x轴的不同位 置安排弓箭手向y轴方向射箭,弓箭可以向y轴走无穷远;给定气球的宽度 xstart ≤ x ≤ xend,问至少需要多少弓 ...

  7. [CQOI2014]数三角形 组合数 + 容斥 + gcd

    推导过程 : 组合数+容斥原理+gcd 正确做法是暴力的一种优化,ans=所有情况 - 平行坐标轴的三点共线 - 斜线三点共线 如果快速求斜线三点共线: 首先要知道一个结论,对于点(a,b) (x,y ...

  8. 多重集表示合json数据_计数DP(划分数,多重集组合数)

    划分数:把n个无区别的物品划分成不超过m组. dp[i][j]=j的i划分的总数. dp[i[j]=dp[i][j-i]+dp[i-1][j] 即:将j个物品分成i份,有两种情况:每份划分都大于等于1 ...

  9. 【青少年编程】【三级】打气球游戏

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 微信后台回复"资料下载&quo ...

最新文章

  1. 关于css的float
  2. H5 小代码(实时更新)
  3. 使用Silverlight3中的DataPager实现服务器端分页
  4. UVA 141 The Spot Game
  5. C语言EOF是什么?
  6. Hadoop概念学习系列之Hadoop 生态系统
  7. linux命令deploy_Linux deploy 使用教程
  8. linux 重置网卡配置_Linux不进入网卡配置文件更改静态ip
  9. 设置log缓存_Redis中缓存击穿 缓存穿透 缓存雪崩解决方案
  10. [原创]按键小精灵通用去广告破解补丁
  11. DB2 8.2 9.1 9.5 9.7 下载地址(原创)
  12. 搭建安卓开发环境 GIT配色 terminator SecureCRT source insight Notepad++安装
  13. 通过python实现txt中,字母概率的计算,以及信源熵的计算,并且输出
  14. Linux USB 鼠标驱动程序详解
  15. html如何在表单里加虚线,大佬,表格下方的虚线怎么添加?
  16. 网银“交易密码丢失U盾作废”引质疑
  17. 外媒点赞,浪潮存储为何能入围全球最佳主存储供应商
  18. 苹果输了官司,iPad会改名吗?
  19. idea创建三种应用程序的方法:springboot,控制台程序,windows服务程序
  20. 2019 数学建模国赛 C 题思路

热门文章

  1. ubuntu中执行jupyter格式代码
  2. python 封装函数_python:函数数据封装
  3. 吴恩达深度学习 —— 3.11 随机初始化
  4. pytorch - autograd与逻辑回归
  5. python单自由度振动计算-数据可视化2
  6. Matlab--根据bar 的值,用不同的color画
  7. 数据竞赛入门-金融风控(贷款违约预测)四、建模与调参
  8. 一个简单的PHP邮件列表管理器
  9. 一个简单的PHP购物车系统
  10. ui设计移动端字体适配_超全面的移动端UI 设计规范整理汇总