数学(组合,容斥):COGS 1220. 盒子与球
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. 盒子与球的更多相关文章
- bzoj4710: [Jsoi2011]分特产 组合+容斥
4710: [Jsoi2011]分特产 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 289 Solved: 198[Submit][Status] ...
- 数学(容斥计数):LNOI 2016 方
Description 上帝说,不要圆,要方,于是便有了这道题.由于我们应该方,而且最好能够尽量方,所以上帝派我们来找正方形 上帝把我们派到了一个有N行M列的方格图上,图上一共有(N+1)×(M+1) ...
- bzoj3622已经没有什么好害怕的了 dp+组合+容斥(?)
3622: 已经没有什么好害怕的了 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1033 Solved: 480[Submit][Status][ ...
- BZOJ.4767.两双手(组合 容斥 DP)
题目链接 \(Description\) 棋盘上\((0,0)\)处有一个棋子.棋子只有两种走法,分别对应向量\((A_x,A_y),(B_x,B_y)\).同时棋盘上有\(n\)个障碍点\((x_i ...
- BZOJ.2339.[HNOI2011]卡农(思路 DP 组合 容斥)
题目链接 \(Description\) 有\(n\)个数,用其中的某些数构成集合,求构造出\(m\)个互不相同且非空的集合(\(m\)个集合无序),并满足每个数总共出现的次数为偶数的方案数. \(S ...
- bzoj3294[Cqoi2011]放棋子 dp+组合+容斥
3294: [Cqoi2011]放棋子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 755 Solved: 294[Submit][Status] ...
- bzoj 4767: 两双手 组合 容斥
题目链接 bzoj4767: 两双手 题解 不共线向量构成一组基底 对于每个点\((X,Y)\)构成的向量拆分 也就是对于方程组 $Ax * x + Bx * y = X $ \(Ay * x + B ...
- codeforces 571A--Lengthening Sticks(组合+容斥)
A. Lengthening Sticks time limit per test 1 second memory limit per test 256 megabytes input standar ...
- bzoj4767两双手 容斥+组合
4767: 两双手 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 684 Solved: 208[Submit][Status][Discuss] ...
随机推荐
- MD5加密 Java源代码
package lwp; /** * * @author 梁WP */ public class MD5_Encoding { // RFC1321中定义的标准4*4矩阵的常量定义. static f ...
- URAL 1988 - Planet Ocean Landing【几何&三分答案】
[题意] 在一个星球(是一个球体)表面有一个飞机(坐标(x1,y1,z1),原点是星球中心),在空中有一个空间站(坐标(x2,y2,z2)),所有值均小于100,现在要使飞机与空间站相遇,飞机的速度是 ...
- springmvc配置文件 spring-servlet
<?xml version="1.0" encoding="UTF-8"?><!-- Bean头部 --><beans xmlns ...
- C# 内存管理优化畅想(一)---- 大对象堆(LOH)的压缩
我们都知道,.net的GC是不会压缩大对象堆的,因为其时间开销不可接受,但这是以大对象堆产生大块碎片为代价的,如果以后要分配的大对象比最大的碎片还大,那么即使它比所有碎片的总大小要小,也是无法在不扩展 ...
- 关于EF查询表里的部分字段
这个在项目中用到了,在网上找了一下才找到,留下来以后自已使用. List<UniversalInfo> list =new List<UniversalInfo>(); lis ...
- 客户端session与服务端session
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- js substr和substring字符串截取
substr(start,length)第一个参数是开始位置(注:start的开始是从0开始,看到好多博客上面是从1开始,在火狐和谷歌执行了一下是从0开始),第二个参数是截取字符串的长度(可以省略,表 ...
- div宽度设置无效问题解决
问题描述: 要设置两个div在同一行显示,都加入了display:inline样式,但是其中一个div的宽度设置无效,在浏览器显示它的宽度始终是1003px. 解决办法: 方法1/给div加入样式:f ...
- ViewPager + Fragment 实现类微信界面
在如今的互联网时代,微信已是一个超级App.这篇通过ViewPager + Fragment实现一个类似于微信的界面,之前有用FragmentTabHost实现过类似界面,ViewPager的实现方式 ...
- GoogleAuthenticator
<?php /** * PHP Class for handling Google Authenticator 2-factor authentication * * @author Micha ...