[两道递推题] 美团 CodeM 初赛 Round A 二分图染色 & OEIS A001499
来源:互联网 发布:天刀神威捏脸数据 编辑:程序博客网 时间:2024/06/05 16:04
好久没做过
二分图染色
转化为棋盘模型,即
令
然后我们考虑容斥掉两个颜色在同一格,如果一个格子既放黑又放白,那么这一列和这一行不会有其他棋子,直接删掉
但是这个
第一项是在第
被统计两次,最后还需减去摆两枚棋子的方案数,即第三项。
#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;#define read(x) scanf("%d",&(x))const int N=1e7+5;const int P=1e9+7;ll fac[N],inv[N];inline void Pre(int n){ fac[0]=1; for (int i=1;i<=n;i++) fac[i]=fac[i-1]*i%P; inv[1]=1; for (int i=2;i<=n;i++) inv[i]=(ll)(P-P/i)*inv[P%i]%P; inv[0]=1; for (int i=1;i<=n;i++) inv[i]=inv[i-1]*inv[i]%P;}inline ll C(int n,int m){ return fac[n]*inv[m]%P*inv[n-m]%P;}inline ll A(int n,int m){ return fac[n]*inv[n-m]%P;}int n; ll b[N];int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout); read(n); b[0]=1; b[1]=2; for (int i=2;i<=n;i++) b[i]=(2LL*i*b[i-1]%P+P-(ll)(i-1)*(i-1)%P*b[i-2]%P)%P; ll ans=0; Pre(n); for (int i=0;i<=n;i++) if (~i&1) ans+=C(n,i)*A(n,i)%P*b[n-i]%P*b[n-i]%P; else ans+=P-C(n,i)*A(n,i)%P*b[n-i]%P*b[n-i]%P; printf("%lld\n",ans%P); return 0;}
OEIS A001499
Number of n X n matrices with exactly 2 1’s in each row and column, other entries 0.
考虑每列作为点,每行作为边把两个点连在一起,那么我们得到了若干边上带数字的环
我们先忽略边上的点,最后直接乘上
直接递推咯
然后
递推就好了
阅读全文
0 0
- [两道递推题] 美团 CodeM 初赛 Round A 二分图染色 & OEIS A001499
- 「美团 CodeM 初赛 Round A」二分图染色 容斥原理
- [LOJ#6160][美团 CodeM 初赛 Round A][容斥][递推]二分图染色
- 【CodeM初赛A 6】二分图染色 题解
- 「美团 CodeM 初赛 Round A」身体训练
- 「美团 CodeM 初赛 Round A」倒水
- 「美团 CodeM 初赛 Round A」倒水
- LibreOJ6162(美团 CodeM 初赛 Round A)[身体训练]--期望
- 【loj6161】「美团 CodeM 初赛 Round A」倒水
- 美团 CodeM 资格赛 Round A 倒水 讨论+二分
- [LOJ#6159][美团 CodeM 初赛 Round A][暴力即正解]最长树链
- loj #6164. 「美团 CodeM 初赛 Round A」数列互质
- LOj #6164. 「美团 CodeM 初赛 Round A」数列互质 (莫队算法)
- LibreOJ 6162 「美团 CodeM 初赛 Round A」身体训练
- 【loj6159】「美团 CodeM 初赛 Round A」最长树链
- 【loj6162】「美团 CodeM 初赛 Round A」身体训练
- CodeM美团点评编程大赛初赛A轮 C.倒水【二分+分类讨论】
- 「美团 CodeM 初赛 Round B」子串
- XML文件解析初试Python
- sxt6.26
- librtmp发送AVC,AAC数据包
- Python+OpenCV3 视频文件无法读取
- 九度oj-1177-查找
- [两道递推题] 美团 CodeM 初赛 Round A 二分图染色 & OEIS A001499
- 正则表达式-6.26
- 你不是不努力,而是不懂选择 | 四种技术方案,应该怎么选
- 进制及位运算
- React-Native 工程添加推送功能 (iOS 篇)
- LinkedList与ArrayList的区别||HashTable与HashMap的区别||Vector||Set
- 二叉树的实现
- 迭代(一)搭建框架基础体系
- 【NOI2017模拟6.26】A