/**
题目:hdu6143 Killer Names
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6143
题意:有m种字符(可以不用完),组成两个长度为n的字符串,要求这两个字符串含有的字符没有相同的。
求有多少种方式组成这两个字符串。
思路:容斥+排列组合
反思一开始以为这题是dp,然后想了很久没想出来,觉得挺不好处理的,,能力不足。
后来想到是容斥。
f[n][1]表示长度为n的字符串用1种字符填充的方法数。
f[n][2] = 2^n - C(2,1)*f[n][1]; 两种的所有填充方式-一种的填充方式。
f[n][3] = 3^n - C(3,1)*f[n][1] - C(3,2)*f[n][2];...
...
f[n][m] = m^n - sigma[1<=i<m]C(m,i)*f[n][i]; 那么可以枚举左边这个n长度字符串的组合方式用去i种字符,那么剩下那个字符串用剩下的字符任意组合即可。
注意m大于n的情况。
*/ #include<bits/stdc++.h>
#define LL long long
using namespace std; const int N = ;
const int mod = 1e9 + ; LL fac[N], inv[N];
LL f[N][N];
void init()
{
inv[] = inv[] = ;
for(int i = ; i < N; i++)inv[i] = (mod-mod/i)*inv[mod%i]%mod;
for(int i = ; i < N; i++)inv[i] = inv[i-]*inv[i]%mod;
fac[] = ;
for(int i = ; i < N; i++) fac[i] = fac[i-]*i%mod;
}
LL Pow(LL a,LL b)
{
LL p = ;
while(b){
if(b&) p = p*a%mod;
a = a*a%mod;
b >>= ;
}
return p;
}
LL C(int n,int m)
{
return fac[n]*inv[m]%mod*inv[n-m]%mod;
}
void solve(int n,int m)
{
for(int i = ; i <= min(n,m); i++){
f[n][i] = Pow(i,n);
for(int j = ; j < i; j++){
f[n][i] = (f[n][i]-f[n][j]*C(i,j)%mod+mod)%mod;
}
}
}
int main()
{
int T;
int n, m;
init();
cin>>T;
while(T--)
{
scanf("%d%d",&n,&m);
solve(n,m);
LL ans = ;
int mis;
if(m>n) mis = n;
else mis = m-;
for(int i = ; i <= mis; i++){
ans = (ans+C(m,i)*f[n][i]%mod*Pow(m-i,n)%mod)%mod;
}
cout<<ans<<endl;
}
return ;
}

hdu6143 Killer Names 容斥+排列组合的更多相关文章

  1. 2017ACM暑期多校联合训练 - Team 8 1011 HDU 6143 Killer Names (容斥+排列组合,dp+整数快速幂)

    题目链接 Problem Description Galen Marek, codenamed Starkiller, was a male Human apprentice of the Sith ...

  2. 2017多校第8场 HDU 6143 Killer Names 容斥,组合计数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6143 题意:m种颜色需要为两段长度为n的格子染色,且这两段之间不能出现相同的颜色,问总共有多少种情况. ...

  3. 【BZOJ4005】[JLOI2015] 骗我呢(容斥,组合计数)

    [BZOJ4005][JLOI2015] 骗我呢(容斥,组合计数) 题面 BZOJ 洛谷 题解 lalaxu #include<iostream> using namespace std; ...

  4. bzoj3782上学路线(Lucas+CRT+容斥DP+组合计数)

    传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3782 有部分分的传送门:https://www.luogu.org/problemnew/ ...

  5. CF1043F Make It One 容斥+dp+组合

    考试的时候考的一道题,感觉挺神的. 我们发现将所有数去重后最多只会选不到 $7$ 后 $gcd$ 就会变成 $1$. 令 $f[i][k]$ 表示选 $i$ 个数后 $gcd$ 为 $k$ 的方案数. ...

  6. HDU 6143 17多校8 Killer Names(组合数学)

    题目传送:Killer Names Problem Description > Galen Marek, codenamed Starkiller, was a male Human appre ...

  7. SPOJ - AMR11H Array Diversity (水题排列组合或容斥)

    题意:给定一个序列,让你求两种数,一个是求一个子序列,包含最大值和最小值,再就是求一个子集包含最大值和最小值. 析:求子序列,从前往记录一下最大值和最小值的位置,然后从前往后扫一遍,每个位置求一下数目 ...

  8. bzoj4767两双手 容斥+组合

    4767: 两双手 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 684  Solved: 208[Submit][Status][Discuss] ...

  9. bzoj4710: [Jsoi2011]分特产 组合+容斥

    4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 289  Solved: 198[Submit][Status] ...

随机推荐

  1. 水晶报表WEB方式下不打印的问题

    水晶报表版本是10.2.3600.0,是vs2005自带的.功能原来正常,服务器重做后不能打印,但是导出功能正常. 研究的大概情况: 1.水晶报表的web相关代码位于\aspnet_client\sy ...

  2. C#返回多个参数 ref及out

    out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字.例如 ...

  3. xcode 模拟器,文档,离线安装

    一:xcode上的模拟器,文档,在下载时,通过apple.com下载的速度太慢了,所以我们下载之后,做一下备份,离线安装还原就行了! 二:模拟器安装 目录:/Users/<user name&g ...

  4. POI按行读取word,并去掉属性标签内容:超链接

    public String readDoc(File file) { StringBuffer buffer = new StringBuffer(); InputStream input = nul ...

  5. 彻底告别加解密模块代码拷贝-JCE核心Cpiher详解

    前提 javax.crypto.Cipher,翻译为密码,其实叫做密码器更加合适.Cipher是JCA(Java Cryptographic Extension,Java加密扩展)的核心,提供基于多种 ...

  6. canves 图片旋转 demo

    <!DOCTYPE htmls> <html> <head> <title></title> <style> </styl ...

  7. python字符串操作大全

    1.去空格 strip() >>> s = 'a b c d ' >>> s.strip() 'a b c d' 2.lstrip() 方法用于截掉字符串左边的空格 ...

  8. HttpSession 和URLRewriting

    在上面使用Cookie技术存储会话信息的时候发现Cookie存储的数据有限,而且每次需要客户端浏览器携带数据,导致网络的负载过大.因此如果需要存储相对大量的数据,那么可以直接将数据存储在服务器端,这样 ...

  9. Centos网络时好时超时问题解决

    近期公司使用的Centos突然出现网络不稳定现象,有公网,内部可以PING通外网,但是外部PING这个IP时,经常丢包现象,而且一丢包就是连续性的长达七八次,甚至十几次. 这个问题折腾了很长时间,因为 ...

  10. 【LeetCode】76. Minimum Window Substring

    Minimum Window Substring Given a string S and a string T, find the minimum window in S which will co ...