转: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的剑 (组合数学)相关推荐

  1. bzoj 4402 Claris的剑

    4402: Claris的剑 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 255 Solved: 145 [Submit][Status][Disc ...

  2. bzoj 4402: Claris的剑

    要求本质不同,考虑字典序最小的排法 序列是这样的: 1(212121--)2(323232--)3(434343--)-- m 或者 1(212121--)2(323232--)3(434343--) ...

  3. 【BZOJ】4402 Claris的剑

    Description Description Claris Claris想要铸一把剑,这把剑必须符合他的审美,具体来说,我们可以把这把剑的不同地方的宽度看成一个序列,这个序列要满足以下条件: 1.  ...

  4. 【BZOJ4402】Claris的剑(组合数学)

    传送门 题解: 我们认为两把剑本质不同,当且仅当存在至少一个宽度,在两把剑的宽度序列里面出现次数不一样. 这个定义和我们平时所熟知的本质不同的定义是有较大区别的,这道题中的本质不同需要通过cntcnt ...

  5. 【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 或 ...

  6. Bzoj4402 Claris的剑

    Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 270  Solved: 152 Description Claris想要铸一把剑,这把剑必须符合他的 ...

  7. bzoj4402: Claris的剑

    第一眼--DP,然而本质不同... 若每种剑只取字典序最小的,可表示为:1 +  若干个(2 1)+ 2 + 若干个(3 2)+3 +--+k (+k-1) 然后,设剑最大宽度为k,必有序列1--2- ...

  8. bzoj 4710 [Jsoi2011]分特产 组合数学+容斥原理

    题面 题目传送门 解法 考虑容斥原理 显然,我们可以枚举有多少个人没有收到 然后就转化成一个组合问题了 假设现在有\(x\)个物品,\(n\)个人,可以有人没有被分到,那么分给这\(n\)个人的方案数 ...

  9. 2017.9.12 claris的剑 失败总结

    今天的题怎么都这么难,不是搞常数就是劲逻辑 没想到组合数学学的这么差.连插板法都没有看出来.. 首先两个两个分组(分组的思想很重要) 然后本质不同就利用上了,即选的组数量不同 然后就是枚举所有m,然后 ...

最新文章

  1. C++STL容器大全
  2. debian/ubuntu19.10下安装使用护眼软件f.lux
  3. python实验结论怎么写_Python实验课:Python元组数据及其运算
  4. Wordpress 模版技术手册 - WordPress Theme Technical manuals
  5. mysql long类型_BAT架构师46面试题:spring+多线程+Redis+MySQL(建议收藏)
  6. JaveScript用二分法与普通遍历(冒泡)
  7. js-格式化数字保留两位小数-带千分符
  8. 计算机网络实验-路由器IP地址配置及直连网络和ARP协议分析
  9. 安装python第三方模块包时,报错 error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C
  10. php 将rgb转cmyk,应该如何正确的将RGB转成CMYK颜色? | 色彩管理网
  11. 股市潜规则 你经历过几个?(转)
  12. Oracle Grid Infrastructure架构
  13. Termios 百科
  14. 中国/玩具鸭舰队/漂流15年 今夏将抵英国
  15. 如何理解计算机网络的体系结构,如何理解计算机组成和计算机体系结构?
  16. 基于vue的图片裁剪插件vue-cropper
  17. PTA甲 1152~1155题解
  18. 求助,如何理解单相逆变器中的电压电流双闭环PI控制
  19. android摄像头监控打电话卡死,Android应用开发Android8.0平台Camera monkey拷机卡死异常解决方案...
  20. 银行系统名称中英文对比

热门文章

  1. 小程序微商管理系统,小程序的服务面
  2. uniapp微信小程序如何返回上一页的左上角小房子的坑
  3. 不烧钱、不裁员,闪送何以不畏资本寒冬?
  4. 库卡机器人emd价格_KUKA库卡机器人备件
  5. 为世界之光——国立交通大学校歌
  6. fastJSON---List转String-String转数组
  7. python定义数组长度_python数组要先定义长度吗
  8. python 获取硬盘信息失败请谨慎操作_【裸机装系统】获取硬盘信息失败,请谨慎操作!...
  9. Php socket 考勤机,php-socket
  10. 汽车主从动锥齿轮严重粘附磨损的诊断与排除