BZOJ 4402: Claris的剑 (组合数学)
转:ws_yzy的博客
之所以是C(n+m,m)C(n+m,m)C(n+m,m)而不是C(n+m−1,m−1)C(n+m-1,m-1)C(n+m−1,m−1)是因为插数对时不一定全部插满。
CODE
#pragma GCC optimize ("O2")
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2000005;
const int mod = 1e9 + 7;
typedef long long LL;
int n, m, inv[MAXN], fac[MAXN];
inline void pre(int N) {inv[0] = inv[1] = fac[0] = fac[1] = 1;for(int i = 2; i <= N; ++i)inv[i] = 1ll * (mod - mod/i) * inv[mod%i] % mod,fac[i] = 1ll * fac[i-1] * i % mod;for(int i = 2; i <= N; ++i)inv[i] = 1ll * inv[i-1] * inv[i] % mod;
}
inline int C(int n, int m) { return 1ll * fac[n] * inv[m] % mod * inv[n-m] % mod; }
inline int solve(int n, int m) {if(n < 0) return 0;n >>= 1;return C(n + m, m);
}
int main () {scanf("%d%d", &n, &m); pre(max(n, m));int ans = (n && m);for(int i = 2; i <= m; ++i)ans = (ans + solve(n-i, i-1)) % mod,ans = (ans + solve(n-i-1, i-1)) % mod;printf("%d\n", (ans + mod) % mod);
}
BZOJ 4402: Claris的剑 (组合数学)相关推荐
- bzoj 4402 Claris的剑
4402: Claris的剑 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 255 Solved: 145 [Submit][Status][Disc ...
- bzoj 4402: Claris的剑
要求本质不同,考虑字典序最小的排法 序列是这样的: 1(212121--)2(323232--)3(434343--)-- m 或者 1(212121--)2(323232--)3(434343--) ...
- 【BZOJ】4402 Claris的剑
Description Description Claris Claris想要铸一把剑,这把剑必须符合他的审美,具体来说,我们可以把这把剑的不同地方的宽度看成一个序列,这个序列要满足以下条件: 1. ...
- 【BZOJ4402】Claris的剑(组合数学)
传送门 题解: 我们认为两把剑本质不同,当且仅当存在至少一个宽度,在两把剑的宽度序列里面出现次数不一样. 这个定义和我们平时所熟知的本质不同的定义是有较大区别的,这道题中的本质不同需要通过cntcnt ...
- 【BZOJ4402】—Claris的剑(组合数学)
传送门 由于只关注每个数出现了多少次 所以一种情况一定可以表示成1,2,3,4,3,4,3,4--m−1,m1,2,3,4,3,4,3,4--m-1,m1,2,3,4,3,4,3,4--m−1,m 或 ...
- Bzoj4402 Claris的剑
Time Limit: 10 Sec Memory Limit: 256 MB Submit: 270 Solved: 152 Description Claris想要铸一把剑,这把剑必须符合他的 ...
- bzoj4402: Claris的剑
第一眼--DP,然而本质不同... 若每种剑只取字典序最小的,可表示为:1 + 若干个(2 1)+ 2 + 若干个(3 2)+3 +--+k (+k-1) 然后,设剑最大宽度为k,必有序列1--2- ...
- bzoj 4710 [Jsoi2011]分特产 组合数学+容斥原理
题面 题目传送门 解法 考虑容斥原理 显然,我们可以枚举有多少个人没有收到 然后就转化成一个组合问题了 假设现在有\(x\)个物品,\(n\)个人,可以有人没有被分到,那么分给这\(n\)个人的方案数 ...
- 2017.9.12 claris的剑 失败总结
今天的题怎么都这么难,不是搞常数就是劲逻辑 没想到组合数学学的这么差.连插板法都没有看出来.. 首先两个两个分组(分组的思想很重要) 然后本质不同就利用上了,即选的组数量不同 然后就是枚举所有m,然后 ...
最新文章
- C++STL容器大全
- debian/ubuntu19.10下安装使用护眼软件f.lux
- python实验结论怎么写_Python实验课:Python元组数据及其运算
- Wordpress 模版技术手册 - WordPress Theme Technical manuals
- mysql long类型_BAT架构师46面试题:spring+多线程+Redis+MySQL(建议收藏)
- JaveScript用二分法与普通遍历(冒泡)
- js-格式化数字保留两位小数-带千分符
- 计算机网络实验-路由器IP地址配置及直连网络和ARP协议分析
- 安装python第三方模块包时,报错 error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C
- php 将rgb转cmyk,应该如何正确的将RGB转成CMYK颜色? | 色彩管理网
- 股市潜规则 你经历过几个?(转)
- Oracle Grid Infrastructure架构
- Termios 百科
- 中国/玩具鸭舰队/漂流15年 今夏将抵英国
- 如何理解计算机网络的体系结构,如何理解计算机组成和计算机体系结构?
- 基于vue的图片裁剪插件vue-cropper
- PTA甲 1152~1155题解
- 求助,如何理解单相逆变器中的电压电流双闭环PI控制
- android摄像头监控打电话卡死,Android应用开发Android8.0平台Camera monkey拷机卡死异常解决方案...
- 银行系统名称中英文对比
热门文章
- 小程序微商管理系统,小程序的服务面
- uniapp微信小程序如何返回上一页的左上角小房子的坑
- 不烧钱、不裁员,闪送何以不畏资本寒冬?
- 库卡机器人emd价格_KUKA库卡机器人备件
- 为世界之光——国立交通大学校歌
- fastJSON---List转String-String转数组
- python定义数组长度_python数组要先定义长度吗
- python 获取硬盘信息失败请谨慎操作_【裸机装系统】获取硬盘信息失败,请谨慎操作!...
- Php socket 考勤机,php-socket
- 汽车主从动锥齿轮严重粘附磨损的诊断与排除