洛谷 题解 P1287 【盒子与球】
题解:P1287 盒子与球
分析如下:
设有n个不同的球,分别用b1,b2,……bn表示。从中取出一个球bn,bn的放法有以下两种:
- bn独自占一个盒子;那么剩下的球只能放在m-1个盒子中,方案数为:f(n-1, m-1)
- bn与别的球共占一个盒子;那么可以事先将b1,b2,……bn-1这n-1个球放入m个盒子中,然后再将球bn可以放入其中一个盒子中,方案数为 :m*f(n-1,m)
- 边界条件
a) 盒子数 < 0(盒子数“超支”),不成一种方案。
b) 球数 < 盒子数(盒子数“超支”),不成一种方案。
c) 球数 = 盒子数(正好),为一种方案。
so...
#define ll long long
ll f(int n, int m)
{
if (m <= 0 || n < m)
return 0;
if (n == m)
return 1;
else
return fun(n-1, m-1) + fun(n-1, m) * m;
}
and than...
现有r个互不相同的盒子!!!
不同!!!
所以还要乘上盒子的排列组合
#define ll long long
ll fac(int i) // 然而这个函数不用讲什么
{
if (i == 1)
return 1;
else
return i * fac(i - 1);
}
so...
int main() // 完美主程序
{
ll n, m;
cin >> n >> m;
cout<< f(n, m) * fac(m);
return 0;
}
合成...
#include <stdio.h>
#include <iostream>
#define ll long long
using namespace std;
ll f(int n, int m)
{
if (m <= 0 || n < m)
return 0;
if (n == m)
return 1;
else
return fun(n-1, m-1) + fun(n-1, m) * m;
}
ll fac(int i) // 然而这个函数不用讲什么
{
if (i == 1)
return 1;
else
return i * fac(i - 1);
}
int main() // 完美主程序
{
ll n, m;
cin >> n >> m;
cout<< f(n, m) * fac(m);
return 0;
}
洛谷 题解 P1287 【盒子与球】的更多相关文章
- 洛谷——P1287 盒子与球
P1287 盒子与球 题目描述 现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子.问有多少种方法? 例如:有2个不同的盒子(分别编为1号和2号)和3个不同的球(分 ...
- 洛谷 P1287 盒子与球
P1287 盒子与球 题目描述 现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子.问有多少种方法? 例如:有2个不同的盒子(分别编为1号和2号)和3个不同的球(分 ...
- 洛谷 题解 UVA572 【油田 Oil Deposits】
这是我在洛谷上的第一篇题解!!!!!!!! 这个其实很简单的 我是一只卡在了结束条件这里所以一直听取WA声一片,详细解释代码里见 #include<iostream> #include&l ...
- 洛谷 题解 P1600 【天天爱跑步】 (NOIP2016)
必须得说,这是一道难题(尤其对于我这样普及组205分的蒟蒻) 提交结果(NOIP2016 天天爱跑步): OJ名 编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间 Libre ...
- 洛谷题解P4314CPU监控--线段树
题目链接 https://www.luogu.org/problemnew/show/P4314 https://www.lydsy.com/JudgeOnline/problem.php?id=30 ...
- 洛谷 题解 P2645 【斯诺克】
吐槽一下这道题: 数据太水了!!! 请注意,这题如果你考虑了犯规的情况,那么你的分数...可能会和我一样,只有40分. 也就是说,这是一篇AC不了这道题的题解!!! 现在,我来讲一下这道题的正解: 两 ...
- 洛谷 题解 P1025 【数的划分】
将n个小球放到k个盒子中的情况总数 = (a)至少有一个盒子只有一个小球的情况数 + (b)没有一个盒子只有一个小球的情况数 这样写出表达式: a.因为盒子不加区分,那么=情况数与"将n-1 ...
- 洛谷题解 CF777A 【Shell Game】
同步题解 题目翻译(可能有童鞋没读懂题面上的翻译) 给你三张牌0,1,2. 最初选一张,然后依次进行n次交换,交换规则为:中间一张和左边的一张,中间一张和右边一张,中间一张和左边一张...... 最后 ...
- 洛谷题解 CF807A 【Is it rated?】
同步题解 题目 好吧,来说说思路: 1.先读入啦~(≧▽≦)/~啦啦啦 2.判断a[i]赛前赛后是否同分数,如果分数不同,则输出,return 0 . 3.如果同分数,则判断a[i]赛前(或赛后)是否 ...
随机推荐
- Phone Code
Polycarpus has n friends in Tarasov city. Polycarpus knows phone numbers of all his friends: they ar ...
- UNIX env查找技巧
在一些UNIX系统上,也许可以避免硬编码Python解释器的路径,而可以在文件特定的第一行注释中这样写: #!/usr/bin/env python ... script goes here ... ...
- libdispatch.dylib中dispatch_group的实现
semaphore和group都是libdispatch提供的基于信号量的同步机制,dispatch_group继承自dispatch_semaphore,使用libdispatch层的信号量算法.d ...
- DNS name
DNS name 指的反向解析的域名.
- 嵌入式、C语言位操作的一些技巧汇总
下面分享关于位操作的一些笔记: 一.位操作简单介绍 首先,以下是按位运算符: 在嵌入式编程中,常常需要对一些寄存器进行配置,有的情况下需要改变一个字节中的某一位或者几位,但是又不想改变其它位原有的值, ...
- Dart Learn Notes 04
流程控制语句 流程控制语句的作用就是控制代码的执行流程. if and else var a = 10; if(a > 10){ print('ok'); }else if( 5 < a ...
- Stream系列(二)Map方法使用
Stream 将List 里面的对象转换为新的对象 EmployeeTestCase.java package com.example.demo; import lombok.Data; import ...
- C#学习笔记05--枚举/结构体
一.枚举 当变量的取值范围是固定的几个时, 就可以使用枚举类型, 这样会更加简洁方便 1.1.定义: 访问修饰符 enum 枚举类型名 { 成员1, 成员2, 成员3, ... } publi ...
- Stream系列(九)Collector方法使用
toMap toList toCollection joining 视频讲解:https://www.bilibili.com/video/av77800638/ EmployeeTestCase.j ...
- Selenium+Java(六)Selenium 强制等待、显式等待、隐实等待
前言 在实际测试过程中,由于网速或性能方面的原因,打开相应的网页后或在网页上做了相应的操作,网页上的元素可能不会马上加载出来,这个时候需要在定位元素前等待一下,等元素加载出来后再进行定位,根据实际使用 ...