这题就是要求

\(\sum_{i=1}^{n} \sum_{j=i+1}^{n} C(a_i+a_j+b_i+b_j,a_i+a_j)\)

考虑搞一搞,\(C(a_i+a_j+b_i+b_j,a_i+a_j)\)的意义等同于从 \((-a_j,-b_j)\) 走到 \((a_i,b_i)\)的方案数

因而 \(其他的走到(a_i,b_i)\)的步数就等于所有的加起来走到\((a_i,b_i)\)

然后就可以了

考虑多余的部分

\(\sum_{i=1}^{n} \sum_{j=i+1}^{n} C(a_i+a_j+b_i+b_j,a_i+a_j)\)

\(=\frac{\sum_{i=1}^{n} \sum_{j=1}^{n} C(a_i+a_j+b_i+b_j,a_i+a_j)-\sum_{i=1}^{n} C(a_i+a_i,b_i+b_i)}{2}\)

逆元搞一搞,没了。

#include<bits/stdc++.h>
using namespace std ;
#define rep(i , j , n) for(register int i = j ; i <= n ; i ++)
#define int long long
int n ;
const int N = 2e5 + 10 ;
int a[N] , b[N] ;
const int S = 2e3 + 1 ;
const int M = 4e3 + 20 ;
int dp[M][M] ;
int fac[S << 2] ;
const int mod = 1e9 + 7 ;
int qpow(int x , int y) {
int ans = 1 ;
for( ; y ; y >>= 1 , x = x * x % mod)
if(y & 1) ans = ans * x % mod ;
return ans ;
}
int inv(int x) {
return qpow(x , mod - 2) ;
}
int C(int x , int y) {
return fac[x] % mod * inv(fac[y]) % mod * inv(fac[x - y]) % mod ;
}
signed main() {
ios :: sync_with_stdio(false) ;
cin.tie(0) ;
cout.tie(0) ;
cin >> n ;
fac[0] = 1 ;
rep(i , 1 , S << 2) fac[i] = fac[i - 1] * i % mod ;
rep(i , 1 , n) cin >> a[i] >> b[i] ;
rep(i , 1 , n) ++ dp[S - a[i]][S - b[i]] ;
rep(i , 1 , S << 1) rep(j , 1 , S << 1) {
dp[i][j] = (dp[i][j] + dp[i][j - 1]) % mod ;
dp[i][j] = (dp[i][j] + dp[i - 1][j]) % mod ;
}
int ans = 0 ;
rep(i , 1 , n) (ans += dp[S + a[i]][S + b[i]]) %= mod ;
rep(i , 1 , n) {
ans = (ans - C(a[i] + b[i] + a[i] + b[i] , a[i] + a[i]) + mod) % mod ;
}
ans = (ans * inv(2)) % mod ;
cout << ans << '\n' ;
return 0 ;
}

AGC001 E - BBQ Hard [组合数]的更多相关文章

  1. AGC001 E - BBQ Hard 组合数学

    题目链接 AGC001 E - BBQ Hard 题解 考虑\(C(n+m,n)\)的组合意义 从\((0,0)\)走到\((n,m)\)的方案数 从\((x,y)\)走到\((x+n,y+m)\)的 ...

  2. [agc001E]BBQ Hard[组合数性质+dp]

    Description 传送门 Solution 题目简化后要求的实际上是$\sum _{i=1}^{n-1}\sum _{j=i+1}^{n}C^{A[i]+A[j]}_{A[i]+A[j]+B[i ...

  3. AGC001 E - BBQ Hard【dp+组合数学】

    首先直接按要求列出式子是\( \sum_{i=1}^{n}\sum_{j=i+1}^{n}C_{a_i+a_j+b_i+b_j}^{a_i+a_j} \) 这样显然过不了,因为ab的数据范围比较小,所 ...

  4. [AGC001 E] BBQ Hard

    Description 有\(N(N\leq 200000)\)个数对\((a_i,b_i)(a_i,b_i,\leq 2000)\),求出\(\sum\limits_{i=1}^n\sum\limi ...

  5. 【AtCoder】AGC001

    AGC001 A - BBQ Easy 从第\(2n - 1\)个隔一个加一下加到1即可 #include <bits/stdc++.h> #define fi first #define ...

  6. A*G#C001

    AGC001 A BBQ Easy 贪心. https://agc001.contest.atcoder.jp/submissions/7856034 B Mysterious Light 很nb这个 ...

  7. 【AGC板刷记录】

    这个帖子,是在自己学知识点累了的时候就看看\(AGC\)的题目来休息. 而且白天上课可以做( AGC-001 \(A\ BBQ Easy\) 考虑从小到大排,相邻两个取为一对. BBQ Easy #i ...

  8. agc001E - BBQ Hard(dp 组合数)

    题意 题目链接 Sol 非常妙的一道题目. 首先,我们可以把\(C_{a_i + b_i + a_j + b_j}^{a_i + a_j}\)看做从\((-a_i, -b_i)\)走到\((a_j, ...

  9. ATcoder 1983 BBQ Hard

    E - BBQ Hard Time limit : 2sec / Memory limit : 256MB Score : 1400 points Problem Statement Snuke is ...

随机推荐

  1. Classmethod and Staticmethod - Python 类方法 和 静态方法

    classmethod and staticmethod classmethod 的是一个参数是类对象 cls (本类,或者子类), 而不是实例对象 instance (普通方法). classmet ...

  2. VFP获取 SQL Server 的数据表、触发器、存储过程、视图等脚本

    本文代码转载自红雨先生 *-----------------------------------------------* SqlServer 相关函数*----------------------- ...

  3. Cacti 邮件 报警

    一.使用cacti发一封测试邮件   1.使用第三方SMTP 访问 到达  设置——Mail 选项 设置如下: 1处填写收件箱地址 2.处填写发件箱地址 3.处填写smtp服务器地址 4处填写发件箱用 ...

  4. Apache httpd.conf配置文件 2(Main server configuration)

    ### Section 2: 'Main' server configuration # # The directives in this section set up the values used ...

  5. 关键两步+6个要点,让Windows应用程序享有K8S的绝佳优势

    本文来自Rancher Labs 前  言 实际上,没有一个迁移路径能够适用于将所有传统应用程序迁移到云.这些应用程序通常在物理机.虚拟机或本地.虽然一般情况下是重新设计应用程序架构以适用云原生服务, ...

  6. CVE-2020-0668-Windows服务跟踪中的普通特权升级错误

    CVE-2020-0668-Windows服务跟踪中的普通特权升级错误 在这里中,我将讨论在Windows Service跟踪中发现的任意文件移动漏洞.从我的测试来看,它影响了从Vista到10的所有 ...

  7. 《python可以这样学》第二章

    Python序列 列表与列表推导式 列表创建与删除 创建列表对象 >>> a_list = list((3, 5, 7, 9, 11)) >>> a_list = ...

  8. ES6学习笔记(一):轻松搞懂面向对象编程、类和对象

    目录 面向过程编程P OP(Process oriented programming) 面向对象编程OOP(Object Oriented Programming) 总结 @ 面向过程编程P OP(P ...

  9. asp.net MVC项目开发之统计图的使用(前言)

    接触这个项目,是项目组长已经完成了多数需求,并且有2个项目需要完工的情况下,让我加入,给了我2个表格,让我去设计出统计图.      第一次做统计图,可以说没有任何经验,不知道该如何下手,表格的数据量 ...

  10. css—动画(transform, transition, animation)

    transform 静态属性,一旦写进style里面,会立即显示作用,无任何变化过程.(类似于left, right, top, bottom这类属性) 主要用来做元素的变形 改变元素样式的属性主要有 ...