hdu6143 Killer Names 容斥+排列组合
- /**
- 题目: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 容斥+排列组合的更多相关文章
- 2017ACM暑期多校联合训练 - Team 8 1011 HDU 6143 Killer Names (容斥+排列组合,dp+整数快速幂)
题目链接 Problem Description Galen Marek, codenamed Starkiller, was a male Human apprentice of the Sith ...
- 2017多校第8场 HDU 6143 Killer Names 容斥,组合计数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6143 题意:m种颜色需要为两段长度为n的格子染色,且这两段之间不能出现相同的颜色,问总共有多少种情况. ...
- 【BZOJ4005】[JLOI2015] 骗我呢(容斥,组合计数)
[BZOJ4005][JLOI2015] 骗我呢(容斥,组合计数) 题面 BZOJ 洛谷 题解 lalaxu #include<iostream> using namespace std; ...
- bzoj3782上学路线(Lucas+CRT+容斥DP+组合计数)
传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3782 有部分分的传送门:https://www.luogu.org/problemnew/ ...
- CF1043F Make It One 容斥+dp+组合
考试的时候考的一道题,感觉挺神的. 我们发现将所有数去重后最多只会选不到 $7$ 后 $gcd$ 就会变成 $1$. 令 $f[i][k]$ 表示选 $i$ 个数后 $gcd$ 为 $k$ 的方案数. ...
- HDU 6143 17多校8 Killer Names(组合数学)
题目传送:Killer Names Problem Description > Galen Marek, codenamed Starkiller, was a male Human appre ...
- SPOJ - AMR11H Array Diversity (水题排列组合或容斥)
题意:给定一个序列,让你求两种数,一个是求一个子序列,包含最大值和最小值,再就是求一个子集包含最大值和最小值. 析:求子序列,从前往记录一下最大值和最小值的位置,然后从前往后扫一遍,每个位置求一下数目 ...
- bzoj4767两双手 容斥+组合
4767: 两双手 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 684 Solved: 208[Submit][Status][Discuss] ...
- bzoj4710: [Jsoi2011]分特产 组合+容斥
4710: [Jsoi2011]分特产 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 289 Solved: 198[Submit][Status] ...
随机推荐
- Microjs: 超棒的迷你框架和迷你类库搜罗工具
你可以按条件方便的搜索需要的类库或者框架,以下为条件 基础框架 模板引擎 DOM操作 CSS动画 Javascript动画 数据操作 更多 阅读原文:Microjs: 超棒的迷你框架和迷你类库搜罗工具
- SQL2005 镜像配置
新添加了一台服务器,做原来服务器的备份机,用交叉线+双网卡配置了内网. 系统环境:Windows 2008 R2 数据库:SQL2005 SP3 设置镜像可以用证书和域两种情况,不过域设置的权限比 ...
- PHP快速入门 常用配置
1 打开php.ini-dist文件 2 查找"file_uploads",确定为On(确定服务器上的 PHP 脚本是否可以接受文件上传.) 3 查找"max_execu ...
- Spring Boot学习记录(二)–thymeleaf模板
自从来公司后都没用过jsp当界面渲染了,因为前后端分离不是很好,反而模板引擎用的比较多,thymeleaf最大的优势后缀为html,就是只需要浏览器就可以展现页面了,还有就是thymeleaf可以很好 ...
- 【十二】注入框架RoboGuice使用:(Your First Injected ContentProvider)
上一篇我们简单的介绍了一下RoboGuice的使用([十一]注入框架RoboGuice使用:(Your First Injection into a Custom View class)),今天我们来 ...
- CompletableFuture 详解
转 http://www.jianshu.com/p/6f3ee90ab7d3 CompletableFuture类实现了CompletionStage和Future接口.Future是Java 5添 ...
- win10 你没有足够的权限执行此操作。
win10 你没有足够的权限执行此操作. CreateTime--2018年4月21日08:21:31 Author:Marydon 鼠标悬浮到windows图标上,右键-->选择:以命令提 ...
- 简述document.write和 innerHTML的区别。
document.write是重写整个document, 写入内容是字符串的htmlinnerHTML是HTMLElement的属性,是一个元素的内部html内容
- 摘:常用函数(包括:宽字符函数、普通C函数 )
只要看见“W”就是宽的意思,左边wchar_t,右边char 字符分类: 宽字符函数 普通C函数 描述 iswalnum() isa ...
- centos 7 搭建git远程仓储 免密登录
第一步.安装git服务 yum install git 第二步.创建git用户 adduser git 第三步开启公钥验证 vi /etc/ssh/sshd_config 讲文件中的 #PubkeyA ...