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

这题就是要求 \(\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…
题目链接 AGC001 E - BBQ Hard 题解 考虑\(C(n+m,n)\)的组合意义 从\((0,0)\)走到\((n,m)\)的方案数 从\((x,y)\)走到\((x+n,y+m)\)的方案数 考虑\(C(a_i+b_i+a_j+b_j,a_i+b_i)\)的组合意义 从\((0,0)\)走到\((a_i+a_j,b_i+b_j)\)的方案数 从\((-a_i,-b_i)\)走到\((a_j,b_j)\)的方案数 考虑计算任意\((-a_i,-b_i)\)到任意\((a_i,b_i…
Description 传送门 Solution 题目简化后要求的实际上是$\sum _{i=1}^{n-1}\sum _{j=i+1}^{n}C^{A[i]+A[j]}_{A[i]+A[j]+B[i]+B[j]}$ 这时看看n的数据范围瞬间绝望qaq. 不过看到A,B的数据范围似乎明白了什么...好像是O(n2)的是不是? 关键:从(0,0)走到(m,n)且只能往上和右走的方案数为$C_{n+m}^{n}$ 所以$C^{A[i]+A[j]}_{A[i]+A[j]+B[i]+B[j]}$等价于从…
首先直接按要求列出式子是\( \sum_{i=1}^{n}\sum_{j=i+1}^{n}C_{a_i+a_j+b_i+b_j}^{a_i+a_j} \) 这样显然过不了,因为ab的数据范围比较小,所以从这里入手,注意到后面的组合数含义是从点(ai,bi)走到点(-aj,-bj)的方案数 把但是j从i+1开始不好做,就容斥一下,把式子变成\( \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_…
Description 有\(N(N\leq 200000)\)个数对\((a_i,b_i)(a_i,b_i,\leq 2000)\),求出\(\sum\limits_{i=1}^n\sum\limits_{j=i+1}^nC_{a_i+b_i+a_j+b_j}^{a_i+a_j}\) 答案对\(10^9+7\)取模 Solution 首先考虑\(C(n,m)\)的组合意义:在笛卡尔坐标系下只能向上和向右走,从原点走到\((m,n-m)\)的路径总数. 所以这个\(C_{a_i+b_i+a_j+…
AGC001 A - BBQ Easy 从第\(2n - 1\)个隔一个加一下加到1即可 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('\n') #define eps 1e-…
AGC001 A BBQ Easy 贪心. https://agc001.contest.atcoder.jp/submissions/7856034 B Mysterious Light 很nb这个题 不好做,设\(f(a,b)\)表示边长为\(a,b\),一个角为\(60\)度的平行四边形从\(120\)度的角平分线处出发能走的路程,转移是一个递归,复杂度证明类似\(\gcd\). https://agc001.contest.atcoder.jp/submissions/7856746 C…
这个帖子,是在自己学知识点累了的时候就看看\(AGC\)的题目来休息. 而且白天上课可以做( AGC-001 \(A\ BBQ Easy\) 考虑从小到大排,相邻两个取为一对. BBQ Easy #include<iostream> #include<cstdio> #include<algorithm> #define ll long long #define N 100000 ll n; ll num[N],ans; int main(){ scanf("…
题意 题目链接 Sol 非常妙的一道题目. 首先,我们可以把\(C_{a_i + b_i + a_j + b_j}^{a_i + a_j}\)看做从\((-a_i, -b_i)\)走到\((a_j, b_j)\)的方案数 然后全都放的一起dp,\(f[i][j]\)表示从\((i, j)\)之前的所有点到\((i, j)\)的方案数 减去重复的即可 #include<bits/stdc++.h> using namespace std; const int MAXN = 2e5 + 10, m…
E - BBQ Hard Time limit : 2sec / Memory limit : 256MB Score : 1400 points Problem Statement Snuke is having another barbeque party. This time, he will make one serving of Skewer Meal. He has a stock of N Skewer Meal Packs. The i-th Skewer Meal Pack c…