topcoder13444
2024-05-12 03:31:53
CountTables
TopCoder - 13444
sol:题意和题解都丢在上面了,自己XJByy了一下
先保证行不同,然后对列容斥,dp[i]表示i列的答案
行不同时i列的答案显然是C(c^i,n)*n!,然后在把列之间相同的去掉,就是把i列分为[1~i-1]组,钦定各组之间互不相同,就是第二类斯特林数,减去S[i][ j=[1,i-1] ]*dp[j]即可
/* 问有多少n*m的矩阵,每个数都在[1,C]内,任两行不完全相同,任两列不完全相同。 */ #include <bits/stdc++.h> using namespace std; typedef long long ll; inline ll read() {ll s=0; bool f=0; char ch=' ';while(!isdigit(ch)) {f|=(ch=='-'); ch=getchar();}while(isdigit(ch)) {s=(s<<3)+(s<<1)+(ch^48); ch=getchar();}return (f)?(-s):(s); } #define R(x) x=read() inline void write(ll x) {if(x<0) {putchar('-'); x=-x;}if(x<10) {putchar(x+'0'); return;}write(x/10); putchar((x%10)+'0'); } #define W(x) write(x),putchar(' ') #define Wl(x) write(x),putchar('\n') const ll Mod=1000000007; const int N=4005; ll n,m,c,dp[N]; //先保证行不同,然后对列容斥,dp[i]表示i列的答案 //行不同时i列的答案显然是C(c^i,n)*n! ll S[N][N],fac[N],invf[N]; inline ll Ksm(ll x,ll y) {ll ans=1;while(y){if(y&1) ans=ans*x%Mod; x=x*x%Mod; y>>=1;}return ans; } int main() {int i,j;R(n); R(m); R(c);fac[0]=1; for(i=1;i<=max(n,m);i++) fac[i]=fac[i-1]*i%Mod;invf[m]=Ksm(fac[m],Mod-2); for(i=m-1;i>=0;i--) invf[i]=invf[i+1]*(i+1)%Mod;S[0][0]=1;for(i=1;i<=m;i++) for(j=1;j<=i;j++) S[i][j]=(S[i-1][j-1]+S[i-1][j]*j%Mod)%Mod;ll oo=1,now;for(i=1;i<=m;i++){oo=oo*c%Mod; now=1;for(j=1;j<=n;j++) now=now*(oo-j+1)%Mod;for(j=1;j<i;j++) now=(now-S[i][j]*dp[j]%Mod+Mod)%Mod;dp[i]=now;}Wl(dp[m]);return 0; } /* input 2 2 2 output 10input 1 1 4000 output 4000input 4000 4000 4000 output 237003303input 5 5 1 output 0input 4000 1 4000 output 593395757input 2 3 5 output 13740 */
View Code
转载于:https://www.cnblogs.com/gaojunonly1/p/11221257.html
topcoder13444相关推荐
最新文章
- java mybatis向mysql数据库插入中文出现乱码
- java jdbc 链接pg_Java零基础教程
- Cmake:linux中cmake添加动态库
- yum 多线程插件,apt多线程插件
- 使用DistroTweaks复制您的自定义Linux设置
- IOS机型margin属性无效问题
- 单元测试的编写(asp.net) (VS2017)
- 五邑大学计算机组成原理试卷,2017年五邑大学信息工程学院807微机原理与应用[专业硕士]之计算机组成原理考研强化模拟题...
- js 倒计时 php,2种简单的js倒计时实现方法
- python opencv 利用 GrabCut 算法(opencv已经实现)从图像中分离出前景
- python转义引号的作用_在Jinja2中渲染时转义双引号
- python条形码,Python中的远距离条形码
- junit测试mysql_使用Junit单元测试及操作MySQL数据库时出现错误及解决方法
- 火狐 和 谷歌Google Chrome 内核浏览器 跨域问题
- php排课系统设计,基于PHP+MYSQL教务排课系统设计实现论文
- 梦洁高端化,能解决中国人的睡眠问题吗?
- 深度deepin 20安装官方APP
- Makefile之wildcard
- 2019年甘肃省普通高等学校高职(专科)升本科考试招生工作实施办法
- PTA-天梯赛-7-8 GOGO冲