1220. 盒子与球

★   输入文件:boxball.in   输出文件:boxball.out   简单对比
时间限制:1 s  
内存限制:128 MB

【问题描述】

现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子。问有多少种方法?

例如:有2个不同的盒子(分别编为1号和2号)和3个不同的球(分别编为1、2、3号),则有6种不同的方法:

1号盒子

1号球

1、2号球

1、3号球

2号球

2、3号球

3号球

2号盒子

2、3号球

3号球

2号球

1、3号球

1号球

1、2号球

【输入】

两个整数,n和r,中间用空格分隔。(0≤n, r≤10)

【输出】

仅一行,一个整数(保证在长整型范围内)。表示n个球放入r个盒子的方法。

【样例】

box.in

3 2

box.out

6

  容斥就可以A过去了,若不知道容斥可能对着道题无从下手。

 #include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
long long ans;
int n,m;
long long Calc(int n,int k){
long long ret=;
for(int i=;i<=n;i++)ret*=i;
for(int i=;i<=k;i++)ret/=i;
for(int i=;i<=n-k;i++)ret/=i;
return ret;
}
int main(){
freopen("boxball.in","r",stdin);
freopen("boxball.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=m;i>=;i--){
long long ret=;
for(int j=;j<=n;j++)
ret*=i;
if((m-i+)&)
ans+=ret*Calc(m,i);
else
ans-=ret*Calc(m,i);
}
printf("%lld\n",ans);
return ;
}

数学(组合,容斥):COGS 1220. 盒子与球的更多相关文章

  1. bzoj4710: [Jsoi2011]分特产 组合+容斥

    4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 289  Solved: 198[Submit][Status] ...

  2. 数学(容斥计数):LNOI 2016 方

    Description 上帝说,不要圆,要方,于是便有了这道题.由于我们应该方,而且最好能够尽量方,所以上帝派我们来找正方形 上帝把我们派到了一个有N行M列的方格图上,图上一共有(N+1)×(M+1) ...

  3. bzoj3622已经没有什么好害怕的了 dp+组合+容斥(?)

    3622: 已经没有什么好害怕的了 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1033  Solved: 480[Submit][Status][ ...

  4. BZOJ.4767.两双手(组合 容斥 DP)

    题目链接 \(Description\) 棋盘上\((0,0)\)处有一个棋子.棋子只有两种走法,分别对应向量\((A_x,A_y),(B_x,B_y)\).同时棋盘上有\(n\)个障碍点\((x_i ...

  5. BZOJ.2339.[HNOI2011]卡农(思路 DP 组合 容斥)

    题目链接 \(Description\) 有\(n\)个数,用其中的某些数构成集合,求构造出\(m\)个互不相同且非空的集合(\(m\)个集合无序),并满足每个数总共出现的次数为偶数的方案数. \(S ...

  6. bzoj3294[Cqoi2011]放棋子 dp+组合+容斥

    3294: [Cqoi2011]放棋子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 755  Solved: 294[Submit][Status] ...

  7. bzoj 4767: 两双手 组合 容斥

    题目链接 bzoj4767: 两双手 题解 不共线向量构成一组基底 对于每个点\((X,Y)\)构成的向量拆分 也就是对于方程组 $Ax * x + Bx * y = X $ \(Ay * x + B ...

  8. codeforces 571A--Lengthening Sticks(组合+容斥)

    A. Lengthening Sticks time limit per test 1 second memory limit per test 256 megabytes input standar ...

  9. bzoj4767两双手 容斥+组合

    4767: 两双手 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 684  Solved: 208[Submit][Status][Discuss] ...

随机推荐

  1. 21、javascript 基础

    Javascript Javascript 是一种嵌入到HTML文档的脚本语言,由浏览器解释和执行,无需编译. Javascript 是大小写敏感的,大写字母与小写字母不同. 使用“:”分号来分割每一 ...

  2. TOM大师脚本01-查找未建索引的外键

    [oracle@Oracle11g 2016]$ cat 022201.sql column columns format a30 word_wrappedcolumn tablename forma ...

  3. 实现Bootstrap Carousel Fade Transition 淡入淡出效果

    html代码: <div id="carousel" class="carousel slide carousel-fade" data-ride=&qu ...

  4. 通过移位与或非运算获取整形最大值,最小值,以及获取输入的int类型整数的二进制表示

    以上是最终效果 实现类: package com.corejava.chap02; public class IntBin { private int value; public IntBin(int ...

  5. C++中new的用法

    new int;//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针) new int(100);//开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址 ...

  6. 【POJ1195】【二维树状数组】Mobile phones

    Description Suppose that the fourth generation mobile phone base stations in the Tampere area operat ...

  7. HTML5画布

  8. MVC 文本转换成html显示

    最近在学习ASP.NET MVC,项目中需要将后台传输的HTML文本在前台页面显示:@Html.Raw(HttpUtility.HtmlDecode(ViewBag.DisplayText)).记下来 ...

  9. SQL 左外连接查询 将右表中的多行变为左表的一列或多列

    示例: --行列互转 /**************************************************************************************** ...

  10. 最大乘积(Maximum Product,UVA 11059)

    Problem D - Maximum Product Time Limit: 1 second Given a sequence of integers S = {S1, S2, ..., Sn}, ...