http://acm.hdu.edu.cn/showproblem.php?pid=6397

原问题的本质是问m个元素的多重集S,每一种类型的对象至多出现n-1次的S的k组合的个数是多少?

等价于 x1+x2+...+xm=k  0<xi<=n-1  的解的个数

当xi没有上限(xi<=n-1)时由隔板法得C(k+m-1,m-1)

而有上限时,方法是构造母函数(1+x+....+x^(n-1))^m  答案是x^k的系数

对母函数用等比数列求和再二项式展开加泰勒展开得答案。orz(解法来自知乎,侵删)

#define _CRT_SECURE_NO_WARNINGS
#include<cmath>
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cstring>
using namespace std;
#define rep(i,t,n) for(int i =(t);i<=(n);++i)
#define per(i,n,t) for(int i =(n);i>=(t);--i)
#define mmm(a,b) memset(a,b,sizeof(a))
typedef long long ll;
const int maxn = 5e5 + ;
const ll mod = ; int n, m, k; ll inv[maxn], f[maxn], fac[maxn];
ll c[maxn];
long long kpow(long long a, long long n) {
long long res = ;
while (n > ) {
if (n & )res = res * a%mod;
a = a * a%mod;
n >>= ;
}
return res;
}
void init() {
f[] = ; f[] = ;
fac[] = fac[] = ;
inv[] = ;
rep(i, , maxn) {
fac[i] = fac[i - ] * (ll)i % mod;
inv[i] = kpow(fac[i], mod - );
}
}
ll C(int n, int m) {
if (n < m) return 0ll;
if (m == || n == m) return 1ll;
if (n - == m || m == ) return n;
return fac[n] * inv[m] % mod * inv[n - m] % mod;
} int main() {
int t;
cin >> t;
init();
while (t--) {
cin >> n >> m >> k;
mmm(c, );
ll fl = ;
ll ans = ;
rep(r, , k / n) {
ans += fl * C(m, r)*C(m + k - n * r - , k - n * r) % mod; fl = -fl;
if (ans < )ans += mod;
ans %= mod;
}
cout << ans << endl;
} }

hdu6397 Character Encoding 母函数解约束条件下多重集的更多相关文章

  1. hdu6397 Character Encoding 隔板法+容斥原理+线性逆元方程

    题目传送门 题意:给出n,m,k,用m个0到n-1的数字凑出k,问方案数,mod一个值. 题目思路: 首先如果去掉数字范围的限制,那么就是隔板法,先复习一下隔板法. ①k个相同的小球放入m个不同的盒子 ...

  2. A - Character Encoding HDU - 6397 - 方程整数解-容斥原理

    A - Character Encoding HDU - 6397 思路 : 隔板法就是在n个元素间的(n-1)个空中插入k-1个板,可以把n个元素分成k组的方法 普通隔板法 求方程 x+y+z=10 ...

  3. java.sql.SQLException: Unsupported character encoding 'utf8mb4'.

    四月 12, 2017 3:47:52 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() fo ...

  4. zend studio打开文件提示unsupported character encoding

    zend studio打开文件提示unsupported character encoding,是文件的编码方式错误. 有可能是PHP代码中,charset={CHARSET} ,用了变量的形式调用编 ...

  5. 使用tomcat运行时提示some characters cannot be mapped using iso-8859-1 character encoding异常

    今天第一次使用java进行jsp项目搭建,也是第一次使用tomcat.tomcat是运行java web的一个小型服务器,属于Apache的一个开源免费的服务. 在运行web 的时候,我们就要先配置好 ...

  6. 使用英文版eclipse保存代码,出现some characters cannot be mapped using "Cp1251" character encoding.

    some characters cannot be mapped using "Cp1251" character encoding. 解决办法:方案一: eclipse-> ...

  7. NPM使用详解(下)

    NPM使用详解(下) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impo ...

  8. Character Encoding tomcat.

    default character encoding of the request or response body: If a character encoding is not specified ...

  9. javac命令详解(下)

    摘自http://blog.csdn.net/hudashi/article/details/7058999 javac命令详解(下)                             -ver ...

随机推荐

  1. Xcode 常用设置

    1.main 文件注释 1)main 文件注释修改路径 /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Proje ...

  2. 提取aar 包中的jar包,反编译再替换成新的aar

      参考了 http://blog.csdn.net/hekewangzi/article/details/44676797 针对aar包,增加一些说明 aar包本质应该是zip文件.可以用360解压 ...

  3. 分享一个Godaddy的优惠码,可以优惠35%——2013-11-23

    国外的域名注册商就是好,还有优惠码,付费的时候贴上优惠码就能免相应的金额,不错. 在网上找的一个35%优惠的优惠码,可以买域名和主机.(主机就免了,有点贵,域名不错) 我买了个com域名,原本$12. ...

  4. MySql实现sequence功能的代码

    使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度) 第一步:创建Sequence管理表 sequence DROP TABLE IF EXISTS sequence; CREATE T ...

  5. javascript 简略

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 【bootstrap组件】几个常用的好用bs组件

    这次开发了个小TRS系统,虽然是很小,但是作为初心者,第一次用到了很多看起来洋气使用起来有相对简单的各种前端(主要是和bootstrap配合使用)组件.包括bootstrap-select2,boot ...

  7. 【转】WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等 本文主要内容: CheckBox复选框的自定义样式,有两种不同的风格实现: RadioB ...

  8. Go指南_指针接收者

    源地址 https://tour.go-zh.org/methods/4 一.描述 你可以为指针接收者声明方法. 这意味着对于某类型 T,接收者的类型可以用 *T 的文法.(此外,T 不能是像 *in ...

  9. ubuntu下mysql远程连接和访问慢的解决方法

    原本连接很快的mysql服务器,连接速度奇慢.以前几十毫秒的连接现在完成一次要近5秒钟,在排除了网络问题后,只有从mysql下手.原来每次访问db,mysql就会试图去解析来访问的机器的domain ...

  10. Angular4学习笔记(八)- ng-content

    内容投影 ng-content ng-content是一个占位符,有些类似于router-outlet. 以前举の例子,父组件包含子组件都是直接指明子组件的selector,比如子组件的selecto ...