[容斥原理+组合数学]51 Nod 1829——函数
来源:互联网 发布:java wait notify 源碼 编辑:程序博客网 时间:2024/05/21 07:03
题目描述
想知道f:A->B这个函数(其中|A|=n, |B|=m)的所有映射关系要使B的每个元素都要被A的一个元素覆盖到。
数字可能很大你只要输出方案数模1,000,000,007即可。
解题思路
一看就是要用到容斥原理。
有
容斥一下答案就出来了。
#include<cstdio>#define LL long longusing namespace std;const int maxn=1000005,tt=1e9+7;LL ji[maxn],ans;int n,m,p;LL qsm(LL w,int b){ LL num=1; while(b>0){ if (b%2==1) num=num*w%tt; w=w*w%tt; b>>=1; } return num;}LL c(int x,int y){if (x>y) return x;return ji[y]*qsm(ji[x]*ji[y-x]%tt,tt-2)%tt;}int main(){ freopen("exam.in","r",stdin); freopen("exam.out","w",stdout); ji[0]=1;for (int i=1;i<=1000000;i++) ji[i]=(ji[i-1]*i)%tt; scanf("%d%d",&n,&m); p=1;for (int i=m;i>=1;i--) ans=(ans+c(m-i,m)*qsm(i,n)%tt*p%tt+tt)%tt,p=0-p; printf("%lld\n",ans); return 0;}
阅读全文
0 0
- [容斥原理+组合数学]51 Nod 1829——函数
- 51nod 序列变换 [容斥原理+莫比乌斯函数]【数论+组合数学】
- 51nod 1829 函数 容斥原理
- 51NOD 1806 wangyurzee的树(容斥原理 + 组合数学)
- 51 nod 1486 大大走格子 容斥原理+组合数学+dp
- 51nod 1829 函数(组合数+容斥)
- 51nod 算法马拉松30 A.函数【容斥】【组合数学】
- 51nod 1317 相似字符串对 容斥原理+数学
- 组合数学-容斥原理专辑
- 组合数学 容斥原理 专题
- 容斥原理+质因数分解+组合数学
- 组合数学:容斥原理及其应用
- 组合数学之容斥原理
- 【组合数学】八(容斥原理)
- 容斥原理(组合数学)总结
- 组合数学之二 —— 容斥原理及应用
- 【容斥】51Nod 1829 函数
- 51nod 1486 大大走格子(组合数学+容斥)
- 数据结构基础与基础算法总结
- Judge Route Circle
- C99标准
- NET Core-学习笔记(一)
- [oracle]创建profile 创建角色用户
- [容斥原理+组合数学]51 Nod 1829——函数
- 期刊编审流程
- iOS copy相关
- #CCF准备一年日常刷题#201612-1 中间数
- 文件IO
- 交叉编译boost和opencv
- 查找数组中第K个最小值
- MAC电脑常用快捷键
- 防卫式声明笔记----C++学习之路