HDU6397 Character Encoding

组合计数—插板法+容斥原理

给定n,m,K求                           

G(p) = F(p)−G(p+1),F(p)=(m,p)*(K-n*p+m-1,m-1),p表示>n的组数,根据容斥原理,G(0) 即为最终答案。

#include<bits/stdc++.h>
using namespace std;
const int MAX=1e5+1;
const long long MOD=998244353;
long long fact[2*MAX];
int m,n,K;
void init()
{fact[0]=1;for(int i=1;i<2*MAX;i++) fact[i]=fact[i-1]*i%MOD;
}
long long inv(long long a,long long m)
{if(a==1) return 1;return inv(m%a,m)*(m-m/a)%m;
}
long long C(int a,int b)
{if(a<b) return 0;return fact[a]*inv(fact[b]*fact[a-b]%MOD,MOD)%MOD;
}
long long in_ex(int b,int mul)
{if(b<0) return 0;return (C(b+m-1,m-1)*C(m,mul)%MOD-in_ex(b-n,mul+1)+MOD)%MOD;
}
int main()
{
//    freopen("a.in","r",stdin);
//    freopen("out.txt","w",stdout);int t;init();scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&m,&K);long long tmn=(long long)m*(n-1),tk=(long long)K;if(tmn<tk) printf("0\n");else printf("%I64d\n",in_ex(K,0));}return 0;
}

HDU6397 Character Encoding 插板法+容斥相关推荐

  1. 容斥问卷调查反馈——Co-prime,Character Encoding,Tree and Constraints,「2017 山东一轮集训 Day7」逆序对

    文章目录 Co-prime source solution code Character Encoding source solution code Tree and Constraints sour ...

  2. ACM中的整数K拆分 (有条件限制 无条件限制 插板法 URAL-1036 HDU-6397)

    整数的K拆分 整数K拆分示例 在程序设计竞赛中,我们会经常遇到一类整数 KKK 拆分的问题. 例如:求 NNN 个非负整数之和为 SSS 的方案数(每个数字都小于 MMM). 对于这类问题,分为两种情 ...

  3. CF451E-Devu and Flowers【组合计数,容斥】

    正题 题目链接:https://www.luogu.org/problem/CF451E 题目大意 长度为nnn的序列aia_iai​,有如下要求 ai∈[0...xi]a_i\in[0...x_i] ...

  4. NOIP模拟测试15「建造城市city(插板法)·轰炸·石头剪刀布」

    建造城市 题解 先思考一个简单问题 10个$toot$ 放进5间房屋,每个房屋至少有1个$toot$,方案数 思考:插板法,$10$个$toot$有$9$个缝隙,$5$间房屋转化为$4$个挡板,放在t ...

  5. Luogu4640 BJWC2008 王之财宝 容斥、Lucas

    传送门 题意:有$N$种物品,其中$T$个物品有限定数量$B_i$,其他则没有限定.问从中取出不超过$M$个物品的方案数,对质数$P$取模.$N,M \leq 10^9 , T \leq 15 , P ...

  6. CF(439E - Devu and Birthday Celebration)莫比乌斯容斥

    题意:将n个糖果插入f-1个挡板分成f分(a1,a2,a3...af). 问有多少种分法能够使得gcd(a1,a2,a3...af)=1; 解法.莫比乌斯容斥,首先按1为单位分,这时候有C(n-1,f ...

  7. HDU 6143 Killer Names(排列+容斥,dp)

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

  8. 数学--数论--容斥定理完全解析(转)

    对容斥原理的描述 容斥原理是一种重要的组合数学方法,可以让你求解任意大小的集合,或者计算复合事件的概率. 描述 容斥原理可以描述如下: 要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来, ...

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

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

  10. HDU 6143 Killer Names【容斥定理】【排列组合】

    题目来戳呀 Problem Description Galen Marek, codenamed Starkiller, was a male Human apprentice of the Sith ...

最新文章

  1. javascript中实例方法与类方法的区别
  2. docker支持的linux版本,Docker 升级到最新版本
  3. php new httprequest,php安装HTTP_Request2及引用介绍(通过HTTP_Request创建微软人脸识别的群组 为例)...
  4. 计算机网络实验做什么的,计算机网络实验,做网线.ppt
  5. waitpid()函数
  6. JS学习笔记5-JavaScript 变量
  7. http 直接显示目录下文件_Win10支持直接访问Linux子系统文件:你的下一台Linux何必是Linux
  8. 机器学习笔记(十九):逻辑回归
  9. JasperReport| JasperReport中使用自定义字体(font)
  10. 【软件】XPS格式文件怎么打开,用XPSViewer(百度云免费下载链接)
  11. java发送邮件-java工具类
  12. IPMI 服务器远程管理方法
  13. Python断言工具包assertP
  14. 浏览器控制台Network面板简述
  15. 2-2.基金的投资交易与结算
  16. hibernate中的检索策略
  17. Android Parcel数据传输源码解析
  18. FAQ0115 AT32使用AC6编译器注意事项
  19. Java OpenCV 图像处理34 图形图像 分水岭 watershed
  20. 05【数据的备份与恢复】

热门文章

  1. 感动的眼泪流下来。。。。中文ecli…
  2. python绘制线段_使用matplotlib绘制线段线
  3. RxSwift学习记录
  4. 百度网盘外链采集分析 爬取百度网盘用户分享 自建百度网盘文件链接搜索引擎
  5. Milvus 2.1 版本更新 - 简单可信赖、性能持续提升
  6. selenium 模拟登陆豆瓣,爬取武林外传的短评
  7. 聚焦Java性能优化 打造亿级流量秒杀系统【学习笔记】03_分布式扩展
  8. 微信小程序与uni-app的区别
  9. CCF考试——201312-5I’m stuck!
  10. 查看oracle归档日志scn,Oracle 归档日志