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相关推荐

最新文章

  1. java mybatis向mysql数据库插入中文出现乱码
  2. java jdbc 链接pg_Java零基础教程
  3. Cmake:linux中cmake添加动态库
  4. yum 多线程插件,apt多线程插件
  5. 使用DistroTweaks复制您的自定义Linux设置
  6. IOS机型margin属性无效问题
  7. 单元测试的编写(asp.net) (VS2017)
  8. 五邑大学计算机组成原理试卷,2017年五邑大学信息工程学院807微机原理与应用[专业硕士]之计算机组成原理考研强化模拟题...
  9. js 倒计时 php,2种简单的js倒计时实现方法
  10. python opencv 利用 GrabCut 算法(opencv已经实现)从图像中分离出前景
  11. python转义引号的作用_在Jinja2中渲染时转义双引号
  12. python条形码,Python中的远距离条形码
  13. junit测试mysql_使用Junit单元测试及操作MySQL数据库时出现错误及解决方法
  14. 火狐 和 谷歌Google Chrome 内核浏览器 跨域问题
  15. php排课系统设计,基于PHP+MYSQL教务排课系统设计实现论文
  16. 梦洁高端化,能解决中国人的睡眠问题吗?
  17. 深度deepin 20安装官方APP
  18. Makefile之wildcard
  19. 2019年甘肃省普通高等学校高职(专科)升本科考试招生工作实施办法
  20. PTA-天梯赛-7-8 GOGO冲

热门文章

  1. pypy的安装及使用介绍
  2. 万物共享的物联网架构
  3. 9周的项目实训从今天就开始了,
  4. 时域和频域变换之---傅里叶级数的数学推导
  5. css如何自动换行对于div,p等块级元素(转)
  6. 让产品自己召唤人——马化腾
  7. zTree的拖拽排序
  8. Excel取消超级链接
  9. javascript eval函数解析json数据时为什加上圆括号eval((+data+))
  10. Android开发之布局--RelativeLayout布局