Divide and Count

题目大意:给定箱子的数量和每个箱子的容量,在每个箱子里都装满对应容量的宝石,每颗宝石都是独一无二的,求一共有多少种放置方式。但是如果两个箱子的容量相同,则认为是  同一种箱子

Sample input:

2
3 3
3
1 2 3

Sample output:

10
60

分析:这是练习赛的时候处在HUST上的题目,当时感觉代码完全对了,却坑了半天,看了题解才发现,是最后除以相同的箱子的时候,是除以它的数量的阶乘,本来是这么想的,却先把它们给乘起来了,样例只是碰巧对而已。也用不到64位整数。

代码如下:

 #include <iostream>
# include<cstdio>
# include<cstring>
using namespace std; int f(int a,int b) //从a到b的乘积
{
int i;
int ans= ;
for(i=a; i<=b; i++)
{
ans *= i;
}
return ans;
}
int main()
{
int i,T,sum,hh,ans;
int num[],a[];
while(scanf("%d",&T)!=EOF)
{ sum = ;
for(i=; i<=; i++)
a[i]=;
for(i=; i<T; i++)
{
scanf("%d",&num[i]);
a[num[i]]++;
sum += num[i];
}
ans =;
for(i=; i<T; i++)
{
ans *= f(sum-num[i]+,sum)/f(,num[i]);
sum -= num[i];
}
for(i=; i<=; i++)
{
if(a[i]>)
ans /= f(,a[i]); //这里除以阶乘
}
printf("%d\n",ans);
}
return ;
}

ZOJ 1202 Divide and Count(排列组合)的更多相关文章

  1. zoj——1202 Divide and Count

    Divide and Count Time Limit: 2 Seconds      Memory Limit: 65536 KB Jack has several beautiful diamon ...

  2. ZOJ 1202 Divide and Count

    原题链接 题目大意:某人手上有一大批钻石,他同时有一些盒子恰好放下这些钻石,每个盒子可以放一个或多个,问一共有几种方法. 解法:这其实是一道排列与组合计算题,主要是写出组合算法的代码,把计算公式转为程 ...

  3. ZOJ 2975 Kinds of Fuwas(暴力+排列组合)

    Kinds of Fuwas Time Limit: 2 Seconds      Memory Limit: 65536 KB In the year 2008, the 29th Olympic ...

  4. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...

  5. 【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  6. 【原创】开源.NET排列组合组件KwCombinatorics使用(二)——排列生成

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  7. 排列组合算法(PHP)

    用php实现的排列组合算法.使用递归算法,效率低,胜在简单易懂.可对付元素不多的情况. //从$input数组中取$m个数的组合算法 function comb($input, $m) { if($m ...

  8. 排列 && 组合

    最近编程经常遇到需要 排列&&组合(求子集) 的问题:遂整理一下. 1. 数字的排列与组合(递归):O(n!),O(nC(n,k)) * O(n) #include <stdio ...

  9. C# 排列组合

    排列组合的概念 排列:从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(Arrangement). 组合:从m个不同的元素中,任取n(n≤m)个元 ...

随机推荐

  1. 关于NoSQL数据库你应该知道的10件事

    关系数据库模型已经流行了几十年了,但是一种新类型的数据库——被称为NoSQL,正在引起企业的注意.下面是关于它的优势和劣势的一个概述.二十多年以来,对数据库管理来说,关系数据库(RDBMS)模型一直是 ...

  2. 某项目 需要在UITabbar 上显示小红点,在此搜罗了三个方法。

    1.使用系统自带的,并且可以在小红点上显示数字. [itemOne setBadgeValue:@""]; //显示不带数字的小红点 [itemOne setBadgeValue: ...

  3. ThinkPHP CURD方法盘点:table方法

    table方法也属于模型类的连贯操作方法之一,主要用于指定操作的数据表. 用法 一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用table方法的情况通常是为了:切换操作的数据表: ...

  4. Delphi获取目录下所有文件名

    //获取一个文件夹下的所有文件 //不包括文件夹里面的文件 //ListBox1.Items:= searchfile('Z:\'); //注意,path后面要有'\'; function  Sear ...

  5. android图片处理方法(不断收集中)

    //压缩图片大小 public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArr ...

  6. DTCC2016

    http://pan.baidu.com/share/home?uk=4043574767#category/type=0

  7. mysqldump 的一些使用参数

    备份数据库#mysqldump 数据库名 >数据库备份名 #mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 #mysqldump -d -A --add-drop- ...

  8. memcached client --ref

    Clients Client API's / libraries Updated Jul 14, 2012 by dorma...@rydia.net ref:https://code.google. ...

  9. Response

    Response This improved Response API, able to simplify the Framework's Response management. Practical ...

  10. Overview & Change Log

    Overview & Change Log Nova Framework is a PHP 5.5+ MVC Framework. It's designed to be lightweigh ...