AGC001E BBQ Hard [dp]
Description:
求∑ni=1∑nj=1,j!=iC(ai+aj+bi+bj,ai+aj)∑i=1n∑j=1,j!=inC(ai+aj+bi+bj,ai+aj)\sum_{i=1}^{n}\sum_{j=1,j!=i}^{n}{C(a_i+a_j+b_i+b_j, a_i+a_j)}
Solution:
这个式子很像网格图中的路径方案数,等于从(−ai,−bi)(−ai,−bi)(-a_i,-b_i)走到(aj,bj)(aj,bj)(a_j,b_j)的方案数
那么答案就是所有(ai,aj)(ai,aj)(a_i,a_j)为终点的方案数,把所有起点dpdpdp值赋为111,dp" role="presentation" style="position: relative;">dpdpdp一下即可。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int base = 2001, maxn = 4005, P = 1e9 + 7;
int n;
ll ans;
int a[200005], b[200005];
ll dp[maxn][maxn], inv[maxn * 2], facinv[maxn * 2], fac[maxn * 2];
ll C(int n, int m) {return fac[n] * facinv[m] % P * facinv[n - m] % P;
}
int main() {scanf("%d", &n);for(int i = 1; i <= n; ++i) {scanf("%d%d", &a[i], &b[i]);++dp[-a[i] + base][-b[i] + base];}for(int i = 1; i < maxn; ++i) {for(int j = 1; j < maxn; ++j) {dp[i][j] = (dp[i][j] + dp[i - 1][j] + dp[i][j - 1]) % P;}}for(int i = 1; i <= n; ++i) {ans = (ans + dp[a[i] + base][b[i] + base]) % P;}fac[0] = fac[1] = inv[0] = inv[1] = facinv[0] = facinv[1] = 1;for(int i = 2; i < 2 * maxn; ++i) {inv[i] = (P - P / i) * inv[P % i] % P;facinv[i] = facinv[i - 1] * inv[i] % P;fac[i] = fac[i - 1] * i % P;}for(int i = 1; i <= n; ++i) {ans = ((ans - C(2 * a[i] + 2 * b[i], 2 * a[i])) % P + P) % P;}printf("%lld\n", ans * inv[2] % P);return 0;
}
AGC001E BBQ Hard [dp]相关推荐
- AtCoder AGC001E BBQ Hard (DP、组合计数)
题目链接: https://atcoder.jp/contests/agc001/tasks/agc001_e 题解: 求\(\sum^n_{i=1}\sum^n_{j=i+1} {A_i+A_j+B ...
- AoCoder 1983 [AGC001E] BBQ Hard(组合数+dp)
problem 洛谷链接 solution ∑i=1n∑j=i+1n(ai+bi+aj+bjai+aj)=∑i=1n∑j=1n(ai+bi+aj+bjai+aj)−∑i=1n(2(ai+bi)2ai) ...
- [AGC001E]BBQ Hard
BBQ Hard 题解 首先,我们可以考虑组合数是可以被表示成路径的形式的,(n+mm)\binom{n+m}{m}(mn+m)可以表示从点(0,0)(0,0)(0,0)到点(n,m)(n,m)(n ...
- BBQ Hard dp + 组合数学 + 建模
传送门 文章目录 题意: 思路: 题意: 有nnn组物品,每组有aia_iai个肉和bib_ibi个菜,你可以选择两组物品让后将肉和菜其串在一根串上,问有多少种不同的串法. 两种方法不同当且仅当选 ...
- AT1983 [AGC001E] BBQ Hard
這遍題解需要用到逆元,學習這個新知識用了兩三個小時. 非常有意思的一道題,可以幫助自己拓展思維. 首先,我們可以想像組合數的幾何意義. 組合數 從n + m 中選 n 個的組合數就是從(0,0)走到( ...
- agc001E BBQ Hard
题目链接 https://agc001.contest.atcoder.jp/tasks/agc001_e 题意简述 有nnn个烧烤包,每个烧烤包里面有一根棍子,AiA_iAi块牛肉,BiB_iBi ...
- AGC001E BBQ Hard 组合计数
题目链接 题目大概要求的就是∑i=1n∑j=i+1nC(ai+aj+bi+bj,ai+aj)∑i=1n∑j=i+1nC(ai+aj+bi+bj,ai+aj)\displaystyle\sum_{i = ...
- 【AGC001E】BBQ Hard(图论,dp)
题意:求 ∑i=1n∑j=1i−1(Ai+Aj+Bi+BjAi+Aj)\sum\limits_{i=1}^n\sum\limits_{j=1}^{i-1}\dbinom{A_i+A_j+B_i+B_j ...
- AT1983-[AGC001E]BBQ Hard【dp,组合数学】
正题 题目链接:https://www.luogu.com.cn/problem/AT1983 题目大意 给出nnn个数对(ai,bi)(a_i,b_i)(ai,bi) 求 ∑i=1n∑j=i+1 ...
最新文章
- Java Math 类中的新功能--浮点数
- Linux下window转unix文件格式
- form表单获取多选的值
- java nio ssl_java连接MQTT+SSL服务器
- 离奇的xenapp客户端无法加载应用故障解决过程 ...
- python一个函数调用另一个函数的返回值_在python函数中使用True,False和None作为返回值...
- 小程序日历插件的使用
- 嵌入式Linux系统编程学习之十八进程间通信(IPC)简介
- java开发sublime插件_开发者最常用的8款Sublime text 3插件
- C/C++编程:普通、标准布局、POD和文本类型
- 购物是女人的天堂,男人的地狱,不了解清楚万一以后被坑了,男人躲哪里后悔去,做这样一个web购物网站,买了货死活回不来,让双十一的女人们过过瘾
- ico的尺寸_Favicon.ico浏览器图标文件制作和正确使用
- css背景图片高斯模糊_CSS3 filter(滤镜) 制作图片高斯模糊无需JS
- 2020年9月指数定期审核与调整 | TokenInsight
- Jquery获取与设置属性
- WiFi beacon时槽
- outlook反复出现验证
- Adams调用cffsub求解动力学仿真过程中的摩擦力
- oracle10安装注意事项,科学网—Asianux server 3.0下安装oracle 10.2注意事项 - 谢安涛的博文...
- 数据挖掘之条件概率和朴素贝叶斯分类器
热门文章
- 自研还是采购BI系统?后悔知道得太晚!
- 【支付FM】个人免签-微信支付宝云闪付 个人二维码收款即时到账
- oracle 创建 em
- win mac 双系统 opencore 硬盘引导_一分钟组装Win+Mac通用移动固态硬盘,千万别忽略这个细节...
- 模式识别分类器评价指标之DET曲线
- d3力导向图增加节点_d3.js力导向图节点如何都显示在边框内
- Matlab中使用psychtoolbox编写刺激界面
- html获取页面点击事件吗,jquery 获取页面点击事件 $(body).click()
- 输入框只允许输入数字字母下划线
- Exp7 网络欺诈防范 Week10 - 20165201