oj之路(第一天)(续:由题目看思想)
来源:互联网 发布:快速排序java实现 编辑:程序博客网 时间:2024/05/21 14:09
我又来了,这是今天最后一道题咯~~作为新手,一天打这么多~这么久~的代码,还是真的觉得神疲力竭啊~
好了,接下来要说的一道题,应该只能说是一道数学题,不过数学题也是能够体现一些思想滴~~好好琢磨才是王道
===========================================================================================================
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
===========================================================================================================
===========================================================================================================
#include <stdio.h>int C(int a, int b){int tmp = 1;for (int i = 1; i <= a; ++i)tmp *= b--;for (int i = 1; i <= a; ++i)tmp /= i;return tmp;}int fact(int div){int sum = 1;while (div)sum *= div--;return sum;}int main(){int sum = 1;int n, m, mt[5] = { 0 };scanf("%d%d", &n, &m);for (int i = 0; i < m; ++i) {scanf("%d", &mt[i]);}for (int i = 0; i < m; ++i) {sum *= C(mt[i], n);n -= mt[i];}for (int i = 0; i < 4; ++i) {int divisor = 1;for (int j = i + 1; j < 5 && mt[i] != 0; ++j) {if (mt[i] == mt[j]) {divisor++;mt[j] = 0;}}sum /= fact(divisor);}printf("%d\n", sum);return 0;}
===========================================================================================================
- oj之路(第一天)(续:由题目看思想)
- oj之路(第一天)(续:由题目看思想)
- oj之路(第一天)(续:由题目看思想)
- oj之路(第二天)(由题目看思想)
- OJ之路(第一天)
- Java学习之路(第一天)
- LINUX之路(第一天)
- Oj之路(第三天)
- oj之路(第三天)(续)
- hdu(杭电oj)第一页题目题解
- 第16周 oj题目(逆序输出数组)
- 第一天---看代码
- PHP自学之路------HTML(第一天)
- PHP自学之路-----DIV+CSS(第一天)
- android学习之路(第一天)-开发环境
- html学习之路——第一天(1)
- html学习之路——第一天(2)
- linux学习之路——第一天(1)
- 对象间是如何进行勾搭的?
- mouseover事件与mouseenter事件的区别
- ZFC 修改记录
- C++内存结构
- oj总结【审题】
- oj之路(第一天)(续:由题目看思想)
- 题目1002:Grading 2011年浙江大学计算机及软件工程研究生机试真题
- 批量梯度下降和随机梯度下降matlab 实现
- fx_IA
- 读《春秋》有感之三:爱护下属
- vim基本操作简介
- 大数求余
- 动态代理的意义
- Algorithm学习笔记 --- 编程输出几个int数中最大的一个(重载)