uvalive1140 组合数学+二项式反演+预处理cmk

数学知识:和式的处理及二项式系数的运用 这本书的主要目的是: 说明不具备超人洞察力的人如何求解问题 阅读详情

题意:n个位置染m种颜色,选K种颜色,要求相邻位置不同颜色,且K种颜色至少都用一次

思路:先选K种颜色,然后如果不管至少都用一次的限制,全体=\small k*(k-1)^{n-1}

全体由恰有1种颜色至少用一次+恰有2种颜色至少用一次+..恰有K种颜色至少用一次

\small k*(k-1)^{n-1}=\sum_{i=2}^{k}f_{k}\binom{k}{i}反演\small ans=\binom{m}{k}f_{k}=\binom{m}{k}\sum_{i=2}^{k}-1^{i+k}\binom{k}{i}i*(i-1)^{n-1}

有个黑科技叫二项式反演(容斥)

学习博客:http://blog.miskcoo.com/2015/12/inversion-magic-binomial-inversion

\small \binom{m}{k}=\binom{m}{k-1}*\frac{m-k+1}{k},用这个预处理cmk跟cki

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7;
ll qmod(ll a,ll b,ll mod)
{
	ll res=1;while(b)
	{
		if(b&1)res=res*a%mod;
		a=a*a%mod;b=b>>1;
	}
	return res;
}
ll cmk[1000005];ll cki[1000005];ll inv[1000005];
void initInv()//预处理 
{
    inv[1] = 1;
    for(ll i = 2; i <= 1000002; i ++) inv[i] = (mod - mod / i) * 1ll * inv[mod % i] % mod;
}
void pre(ll m,ll k)
{
	cmk[1]=m;cki[1]=k;cmk[0]=1;cki[0]=1;
	for(ll i=2;i<=k;i++)
	{
		cmk[i]=cmk[i-1]*(m-i+1)%mod*inv[i]%mod;
		cki[i]=cki[i-1]*(k-i+1)%mod*inv[i]%mod;
	}
}
int main()
{
	initInv();
	ll n,m,k;
	int T;int kase=0;scanf("%d",&T);
	while(T--)
	{
		scanf("%lld%lld%lld",&n,&m,&k);pre(m,k);
		//cout<<"test="<<cki[2]<<endl;
		printf("Case #%d: ",++kase);
		ll ans=0;
		for(ll i=1;i<=k;i++)
		{
			if((k+i)&1)ans=(ans-(cki[i]*1ll*i)%mod*qmod(i-1,n-1,mod)%mod+mod) %mod;
			else ans=(ans+(cki[i]*1ll*i)%mod*qmod(i-1,n-1,mod)%mod+mod) %mod;
			ans%=mod;
		}
		
		printf("%lld\n",ans*cmk[k]%mod);
		
	}	
} 

 

排列组合和二项式定理 先来看两个问题。 问题一:从 nn 个元素中取出其中 kk 个元素,将结果进行排序,问这样的排序有多少种可能? 问题二:从 nn 个元素中取出其中 kk 个元素,组成一个集合,问这样的集合有多少种可能? 问题一对应的数学问题叫排列,问题二对应的数学问题叫组合。下面分别考察这两个问题。 先看问题一,要填满目标序列的 kk 个位置,第一个位置有 nn 种选择,第二个位置有 n−1n-1 种选择 阅读详情

相关推荐

计算组合数,用C语言编程

计算组合数,利用C语言编程,是最经典的C语言事例

组合数+二项式反演(容斥)-UVALive - 7040

题意:t组数据,每组给定n,m,k。有n个格子,m种颜色,要求把每个格子涂上颜色且正好适用k种颜色且相邻的格子颜色不同,求一共有多少种方案,结果对1e9+7取余。二项式反演(重点)设g(i)表示正好有i个颜色涂格子那么全部的C(n, i)*g(i)加起来正好就是所有涂格子的情况,总共n!种情况n! = Σ C(n, i)*g(i) (i从0到n)那么f(n) = n!,所以f(x) = x!那么我们

karant的博客 473

在Keil下完成一个汇编程序的编写

在学习STM32的路上开始是学的C语言尚未进行对汇编进行学习,因此抽出时间来学习一下在keil下的汇编语言。

Liu-FE的博客 1万+

组合数学——二项式反演

组合数学之反演 反演概述 第一反演公式 二项式反演公式 Mo¨biusMo¨biusM\ddot{o}bius反演公式 组合数学之反演 作者:liu_jiangwen 反演概述   反演方法是一种求解序列的方法,这种方法可以把一个序列用另一个序列表示出来。   粗略来说,就是根据两个序列{f(n)}{f(n)}\{f(n)\}和{g(n)}{g(n)}\{g(n)\...

liu_jiangwen的博客 7218

Pytorch CIFAR10图像分类 EfficientNet v1篇

EfficientNet源自Google Brain的论文EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks. 从标题也可以看出,这篇论文最主要的创新点是. 论文提出了,混合缩放,把网络缩放的三种方式:深度、宽度、分辨率,组合起来按照一定规则缩放,从而提高网络的效果。EfficientNet在网络变大时效果提升明显,把精度上限进一步提升,成为了当前最强网络。

风信子的猫Redamancy的快乐星球 1852

mindie部署qwen3-8b

2. 确认目录文件权限是否如下所示,若存在不匹配项,则参考以下命令修改权限。否则要stop容器之后重新start,重新从《以下是在容器中的操作》开始操作。ctrl +d 让命令停止之后,需要等待一段事件让其释放,否则还会有占用。1. 若安装路径为默认路径,执行如下命令,进入MindIE安装目录。# 配置CANN环境,默认安装在/usr/local目录下。3. 运行以下命令初始化各组件环境变量,并开启日志打印。如果报错,可能有些线程没法去除,删除容器重新操作。# 配置模型仓环境变量。以下是在容器中的操作。

andeyeluguo的博客 1035

关于二项式定理,偶数项和的求解方法。

题目问题引入给你一个古典概型问题,总共两个事件,发生A事件的概率为p,则发生B事件的概率为1-p;求k次操作之后,出现偶数次A事件的概率为多少。对于最后的答案要取模1e9+7。 题库链接 <<样例输入2 2 1 1 3 1 2样例输出500000004 555555560题目来源2017 ACM-ICPC 亚洲区(西安赛区)网络赛题解 很显然,答案是求二项式的偶数项和。 对于这种求偶数项的和

Daioo 随笔 1万+

unitree-G1外接 USB 麦克风完整配置指南

首先,将type-c麦克风插入G1机器人的USB口后,记录下USB麦克风的卡号(card)和设备号(device),通常显示为 card 1: Device [USB Audio Device]

m0_47999117的博客 599

HDU - 1166 敌兵布阵 (分块)

/** 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 考虑是否用莫队或者分块 主要还是看数据范围吧 一般是&lt;=1e5 单点修改+区间查询 */ #include&lt;bits/stdc++.h&gt; #define ll long long using namespace std; /********************...

布呗之路 329

Linux Namespace隔离实战:dd/mkfs/mount/unshare构建终极沙箱

内存占用 | 512MB+ | **<10MB** | 50倍节省 || 启动时间 | 15-45秒 | **0.1-0.5秒** | 100倍加速 || 磁盘空间 | GB级 | **MB级** | 显著减少 || 系统调用性能 | 有损耗 | **原生速度** | 零损耗 |

Loving_enjoy的博客 398

YOLOv11在STM32H7上的MCU部署实战:基于CMSIS-NN的高效推理实现

嵌入式AI与MCU部署技术解析 本文系统介绍了基于STM32H7微控制器的YOLOv11模型部署方案。主要内容包括: 边缘计算背景下MCU的AI部署优势与挑战,重点分析了STM32H7平台特性 YOLOv11模型的结构优化,包括E-ELAN骨干网络和Meta-ACON激活函数等改进 CMSIS-NN加速库的架构原理,在STM32H743上可实现5.4倍卷积加速 完整的开发环境搭建流程,涵盖硬件选型、工具链配置和模型转换 模型优化关键技术,包括int8量化、剪枝和内存占用优化等 实验表明,该方案在保持模型精度

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 853

HDU 6755 Fibonacci Sum (二项式定理+预处理) 2020杭电多校第一场

原题题面 The Fibonacci numbers are defined as below: F0=0,F1=1F_0=0,F_1=1F0​=0,F1​=1 Fn=Fn−2+Fn−1(n>1)F_n=F_{n-2}+F_{n-1}(n>1)Fn​=Fn−2​+Fn−1​(n>1) Given three integers NNN, CCC and KKK, calculate the following summation: (F0)K+(FC)K+(F2C)K+(F3C)K...+(

因为一无所有,所以拥有无限可能。 1670

树莓派 5 AI 套件(Hailo)示例

该用户自定义类作为输入传递给回调函数,该函数在管道输出上运行。它用于主程序与回调函数之间的通信。它对 hailo_rpi_common::app_callback_class 进行了扩展,并可根据应用程序的具体情况定制附加变量和方法。

机器人控制与仿真应用 4115

UVALive 6711(2013长春区域赛)

Given a string S and two integers L and M, we consider a substring of S as “recoverable” if and only if (i) It is of length M ∗ L; (ii) It can be constructed by concatenating M “diversified” substri

cq_phqg 1070

Python全栈入门到实战【基础篇 22】生成器与迭代器:底层逻辑与实战场景

Python迭代器与生成器:惰性求值的高效实践 摘要:本文深入解析Python中迭代器和生成器的核心机制与应用场景。迭代器通过实现__iter__()和__next__()方法实现惰性求值,适合处理大数据集和无限序列。生成器作为迭代器的简化实现,通过yield关键字自动实现迭代器协议,代码更简洁。文章详细对比了可迭代对象与迭代器的区别,演示了自定义迭代器和生成器函数的实现方式,并介绍了生成器表达式这一高效替代列表推导式的方案。通过斐波那契数列等实例,展示了惰性求值在内存优化方面的优势,以及生成器在流式数据处

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 3262

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C语言-计算组合数

我们经常会遇到计算组合数的问题,以下为根据组合数公式直接计算的方法。 #include <stdio.h> #include <stdlib.h> long Fact(long n){ //计算阶乘 if (n==0 || n==1) return 1; return n*Fact(n-1); } long Comb(int m,int k){ //计算组合数 return Fact(m)/(Fact(k)*Fact(m-k)); } i

Aa_Lyang的博客 3818

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

DP9 二项式系数 Binomial Coefficient @geeksforgeeks

Following are common definition ofBinomial Coefficients. 1) Abinomial coefficientC(n, k) can be defined as the coefficient of X^k in the expansion of (1 + X)^n. 2) A binomial coefficient C(n, ...

系统 运维 228

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

组合数学

排列: (1)从n个互不相同的元素中选取r个元素进行排列,总的方案数为。 (2)从n个互不相同的元素中选取r个元素进行圆排列,总的方案数为【构成环的排列旋转一周也相等】。 组合: 从n个互不相同的元素里选取r个元素,总的方案数为。 二项式定理: 。 推论一: 。 证明:             二者展开累加结果/2即为所求结果。 推论二:。 对两边求导再同乘x,即可得。 ...

The Shawshank Redemption 2390

组合数学刷题姬

  例题1.洛谷P4491  ,给NMS&lt;=1e7,NTT 题意:N个位置,每个位置可以染为M种颜色,若位置恰有K种颜色出现S次,则获得愉悦度WK 问所有愉悦度之和 https://blog.youkuaiyun.com/animalcoder/article/details/81267633   例题2 hdu5730  CDQ+NTT+DP 题意:已知连续i(1&lt;=i&lt;=n...

animalcoder 3611

NTT(FFT)+CDQ优化DP

DP柿子满足卷积形式均可以用CDQ+NTT优化 ,ai,bi,为两个生成函数的系数   例题1.hdu5322  模数资瓷NTT,ans=dp[n],n&lt;=1e5(下面柿子的(j-1)!应该是(i-1)! ) 系数ai=dp[i]/i! ,bi=i*i,在CDQ里用NTT #include&lt;cstdio&gt; #include&lt;algorithm&gt; #in...

animalcoder 1427

29.牛客网多校第十场D 组合数+多次前缀和

29.牛客网多校第十场D 组合数+多次前缀和 题意:n个数,初始值为0,m个操作 n,m&lt;=1e5  操作3次数小于500 操作1:区间l~r+=c 操作2:区间1~n每个数变成前缀和 操作3:查询l~r加法和   思路:首先我们强行模拟一下前缀和: 第0次前缀和 a1,    a2         a3            a4 第1次前缀和 a1, a1+a2, a1+...

animalcoder 729

洛谷P4491组合数学+NTT

第一道组合数学+NTT 例题1.洛谷P4491  ,给NMS&lt;=1e7 题意:N个位置每个位置可以染为M种染色,若位置恰有K种颜色出现S次,则获得愉悦度WK 问所有愉悦度之和 K的范围:0&lt;=E&lt;=min(M,N/S),设F(i)为位置恰有i种颜色出现S次,由加法原理 套路求F(i):从N个位置选i*S个位置 * 从M种颜色选i个颜色*选出来的i*S个位置进行可重集...

animalcoder 551

组合数学小结

    组合: n个数取r个的不可重复组合:(n,r)   n个数取r个的可重复组合:(n+r-1,r) 等价于n个相等的球放进r个不同的箱子的,可以空盒的方案 理解:一共n+r-1个坑,选r-1个作为分割线 工具:普通母函数Gx=1+x+x^2+x^3........   排列: n个数取r个不可重复的排列:P(n,r)   n个数取r个可重复的排列:n!/(n1!*n...

animalcoder 453

组合数取模小结

非常好的学习博客:https://blog.youkuaiyun.com/skywalkert/article/details/52553048 下图转至:https://blog.youkuaiyun.com/Bfk_zr/article/details/78310541   例题1.hdu5446:lucas+普通CRT 求c(n,m)%p  1&lt;=n,m.p&lt;=1e18 保证p为最多15个不...

animalcoder 421

hdu4045 第二类斯特林,至少k个间隔选数

T-T

animalcoder 409
上一篇: 邻接表的NTT(毒瘤系数开不下二维数组)
下一篇: BZOJ4555 NTT或多项式求逆或CDQ+NTT
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值