博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #309 (Div. 1) A(组合数学)
阅读量:5094 次
发布时间:2019-06-13

本文共 595 字,大约阅读时间需要 1 分钟。

题目:

题意:给你k个颜色的球,下面k行代表每个颜色的球有多少个,规定第i种颜色的球的最后一个在第i-1种颜色的球的最后一个的前面

思路:首先我们想如果是第i种颜色,我们首先必须把这个颜色留下一个,留下的这个球前面的球的个数是前面颜色的总和+这个颜色数-1,

我们想这个颜色的位置数如何安排,即 C(总座位数,要安排的个数),i-1种颜色也是相同的道理,所以我们推出公式

累加球的个数 sum

当前颜色的球的个数num

那么当前颜色的安排个数 即  C(sum-1,num-1)

然后累乘所有的方案数即是答案

这里我们是用卢卡斯定理求的大组合数取模

#include
#include
#define ll long long#define mod 1000000007using namespace std;const int maxn = 10005;ll dp[maxn],inv[maxn],fac[maxn],inv_fac[maxn];void init(){ inv[0]=inv[1]=inv_fac[0]=fac[0]=1; dp[1]=0;dp[2]=1; for(int i=2; i

 

转载于:https://www.cnblogs.com/Lis-/p/10683242.html

你可能感兴趣的文章
经典入门_排序
查看>>
Redis Cluster高可用集群在线迁移操作记录【转】
查看>>
二、spring中装配bean
查看>>
VIM工具
查看>>
javascript闭包
查看>>
创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备...
查看>>
mysql8.0.13下载与安装图文教程
查看>>
http://coolshell.cn/articles/10910.html
查看>>
[转]jsbsim基础概念
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
【2.2】创建博客文章模型
查看>>
【3.1】Cookiecutter安装和使用
查看>>
【2.3】初始Django Shell
查看>>
Linux(Centos)之安装Redis及注意事项
查看>>
bzoj 1010: [HNOI2008]玩具装箱toy
查看>>
Kotlin动态图
查看>>
从零开始系列之vue全家桶(1)安装前期准备nodejs+cnpm+webpack+vue-cli+vue-router
查看>>
ASP.NET缓存 Cache之数据缓存
查看>>
bzoj3529: [Sdoi2014]数表
查看>>
SSH三大框架 整合必备jar包
查看>>