这道题目数据有坑,白浪费一个小时!

题意:求\(\sum_{i=1}^n\sum_{j=1}^n{|i-j|+k \choose k}\)

知识点: 朱世杰恒等式,\(\sum_{i=r}^n{i \choose r}={n+1 \choose r+1},r<n\)

题解:首先去除式子中的绝对值,考虑对称性还有i=j时的重复,原式可转化为\(2\sum_{i=1}^n\sum_{j=i}^n{j-i+k \choose k}-n\)

对式子内部循环调用一遍朱世杰恒等式\(\sum_{j=i}^n{j-i+k \choose k}=\sum_{j=k}^{k+n-i}{j \choose k}={{k+n-i+1} \choose {k+1}}\) (对中间式子有疑惑的可自行展开)

再对外部循环调用一遍\(\sum_{i=1}^n{{k+n-i+1} \choose {k+1}}=\sum_{i=k+1}^{k+n}{i \choose {k+1}}={{k+n+1} \choose {k+2}}\)

福利:\(\sum_{i=m}^n{i \choose r}={n+1 \choose r+1}-{m \choose r+1}\)

#include<bits/stdc++.h>
#define rep(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
typedef long long ll;
const ll mod = 1000000007;
const int maxn = 2e6+111;////
ll jie[maxn],inv[maxn];
ll fpw(ll a,ll n){
ll ans=1;
while(n){
if(n&1) ans=(ans*a)%mod;
n>>=1; a=(a*a)%mod;
}
return ans;
}
ll C(ll n,ll k){
ll up=jie[n];
ll down=inv[k]*inv[n-k]%mod;
return (up*down)%mod;
}
int main(){
ll T; scanf("%lld",&T);
jie[0]=inv[0]=1;
rep(i,1,maxn-2) jie[i]=(jie[i-1]*i)%mod;
rep(i,1,maxn-2) inv[i]=fpw(jie[i],mod-2);
while(T--){
ll n,k; scanf("%lld%lld",&n,&k);
ll tmp=C(n+k+1,k+2);
ll ans=((tmp*2)%mod-n+mod)%mod;
printf("%lld\n",ans);
}
return 0;
}

CodeChef - NWAYS 组合数 朱世杰恒等式的更多相关文章

  1. 朱世杰恒等式的应用-以CF841C为例

    题目大意 Codeforces 841C Leha and Function. 令\(F(n,k)\)为在集合\(\{x|x \in [1,n]\}\)中选择一个大小为k的子集,最小元素的期望值. 给 ...

  2. 2019.10.22 csp-s模拟测试82 反思总结

    重来重来,刚刚就当什么都没发生 今天的题属实有些迷惑,各种意义上…总之都很有难度吧.不满归不满,这套题的确不是什么没有意义的题目. 为了考验自己的学习能力记忆力,决定不写题解,扔个代码完事了 其实是懒 ...

  3. [笔记]ACM笔记 - 组合数

    一.高中数学公式复习 , (好吧这个没学过但是既然看到了就一并抄过来了) 二.快速求组合数取模C(n, m)%p 当n和p大小不同时方法有不同. 1. n很小,p随意,p不需要为素数 1) 原理 使用 ...

  4. hdu1799-循环多少次?-(组合恒等式)

    循环多少次? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  5. codechef January Challenge 2017 简要题解

    https://www.codechef.com/JAN17 Cats and Dogs 签到题 #include<cstdio> int min(int a,int b){return ...

  6. Codeforces 785D Anton and School - 2 (组合数相关公式+逆元)

    D. Anton and School - 2 time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  7. 组合数们&&错排&&容斥原理

    最近做了不少的组合数的题这里简单总结一下下 1.n,m很大p很小 且p为素数p要1e7以下的 可以接受On的时间和空间然后预处理阶乘 Lucas定理来做以下是代码 /*Hdu3037 Saving B ...

  8. CodeForces 785 D Anton and School - 2 范德蒙恒等式

    Anton and School - 2 题解: 枚举每个左括号作为必选的. 那么方案数就应该是下面的 1 , 然后不断化简, 通过范德蒙恒等式 , 可以将其化为一个组合数. 代码: #include ...

  9. CF1081C-Colorful Bricks-(dp||组合数)

    http://codeforces.com/problemset/problem/1081/C 题意:有n个排成一行板块,有m种颜色,要让这些板块有k对相邻板块不同颜色,有多少种涂色方法? 比如样例2 ...

随机推荐

  1. Log4php使用指南

      一.Log4php简介 Log4php是Log4xx系列日志组件之一,是Log4j迁移到php的版本,主要用来记录日志信息,支持多种输入目的地,包括:日志文件.日志回滚文件.数据库.日志服务器等等 ...

  2. 数字图像处理实验(16):PROJECT 06-03,Color Image Enhancement by Histogram Processing 标签: 图像处理MATLAB 2017

    实验要求: Objective: To know how to implement image enhancement for color images by histogram processing ...

  3. 29.MAX() 函数

    MAX() 函数 MAX 函数返回一列中的最大值.NULL 值不包括在计算中. SQL MAX() 语法 SELECT MAX(column_name) FROM table_name 注释:MIN ...

  4. 手打的table

    突然觉得,如果我不上传源码和写篇博客,对不起花在这个破网页2个小时的时间,完全手打,浏览器调效果. 源码如下: a.html: <!DOCTYPE html PUBLIC "-//W3 ...

  5. datebox 和 datetimebox 添加『清空』按钮

    需要引入 easyui-lang-zh_CN.js $(document).ready(function(){ var d_buttons = $.extend([], $.fn.datebox.de ...

  6. Schwartz kernel theorem施瓦兹核定理

    In mathematics, the Schwartz kernel theorem is a foundational result in the theory of generalized fu ...

  7. linq to sql 实现左(右)连接,那个方法是对的,该怎么处理

    linq to sql 实现左(右)连接,那个方法是对的var query2 = from tb0 in db.table_0  join tb1 in db.table_1 on table_0.关 ...

  8. Android Camera相机功能实现 拍照并保存图片

    AndroidManifest.xml <uses-feature android:name="android.hardware.camera"/> <uses- ...

  9. 团队内的沟通方式:网络 OR 当面

    4月1日,我和老王稍微聊了聊关于互联网的工作方式,团队的成员不在一个地方,通过远程互联网的方式进行沟通是不是OK.现在确实有很多公司是有多地的分公司,子公司,不同的团队在不同的办公室中,甚至一个大团队 ...

  10. Hibernate学习第三天(2)(多对多关系映射)

    1.1.1      Hibernate多对多关系的配置 1.1.1.1   创建表 l   用户表 CREATE TABLE `sys_user` ( `user_id` bigint(32) NO ...