[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]+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]}$等价于从…
[Agc001E] BBQ Hard 题目大意 给定\(n\)对正整数\(a_i,b_i\),求\(\sum_{i=1}^{n-1} \sum_{j=i+1}^n \binom{a_i+b_i+a_j+b_j}{a_i+a_j}\). 试题分析 显然,后面的式子是一个\(\binom{n+m}{m}\)的形式,也就是我们从位置\((-a_i,-b_i)\)走到位置\((a_j,b_j)\). 那么我们把式子转化成:\[\frac{\sum_{i=1}^n \sum_{j=1}^n \binom…
BZOJ_3209_花神的数论题_组合数+数位DP Description 背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC …… 当然也包括 CH 啦. 描述 话说花神这天又来讲课了.课后照例有超级难的神题啦…… 我等蒟蒻又遭殃了. 花神的题目是这样的 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)—sum(N) 的乘积. Input 一个正整数 N. Output 一个数,答案模 10…
题意 题目链接 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…
题目链接: https://atcoder.jp/contests/agc001/tasks/agc001_e 题解: 求\(\sum^n_{i=1}\sum^n_{j=i+1} {A_i+A_j+B_i+B_j\choose A_i+A_j}\) 虽然\(n\)很大,但是\(A_i,B_i\le 2000\), 所以我们可以考虑一个权值平方的做法 观察到那个式子就等于从\((-A_j,-B_j)\)走到\((A_i,B_i)\)的NE Lattice Path条数,那么就相当于从\(S\)连边…
4870: [Shoi2017]组合数问题 Time Limit: 10 Sec  Memory Limit: 512 MB Description Input 第一行有四个整数 n, p, k, r,所有整数含义见问题描述. 1 ≤ n ≤ 10^9, 0 ≤ r < k ≤ 50, 2 ≤ p ≤ 2^30 − 1 Output 一行一个整数代表答案. Sample Input 2 10007 2 0 Sample Output 8   题解: 今年的省选题…… 题目的要求很简单,就是求满足…
题目链接:http://codeforces.com/problemset/problem/869/C 题意: 红色.蓝色.紫色的小岛分别有a,b,c个. 你可以在两个不同的岛之间架桥,桥的长度为1. 任意两个颜色相同的岛之间的距离不能小于3. 问你合法的架桥方案数. 题解: 显然只能在不同颜色的岛之间连边. 而且一个岛对于一种颜色,最多只能连一个岛. 设f(x,y)表示两种颜色的岛相互连边,分别有x,y个,连边的方案数.(x < y) 那么ans = f(a,b) * f(b,c) * f(a…
题意 : 有 n 种蚂蚁,第 i 种蚂蚁有ai个,一共有 A 个蚂蚁.不同类别的蚂蚁可以相互区分,但同种类别的蚂蚁不能相互区别.从这些蚂蚁中分别取出S,S+1...B个,一共有多少种取法. 分析 :  实际就是要解决 => 从 n 种物品中取出 m 个有多少种取法 ( 同种无法区分 ) 计数问题的 DP 定义必须保证不重复计数 这里定义 dp[i+1][j] => 从前 i 种物品中取出 j 个的组合数 根据定义为了从前 i 种物品中取出 j 个,可以从前 i-1 中取出 j-k 个并从 i…
正解:$dp$+矩乘+组合数学 解题报告: 传送门! 首先不难发现这个什么鬼无穷就是个纸老虎趴,,,最多在$\binom{n\cdot k+r}{n\cdot k}$的时候就已经是0了后面显然不用做下去了 但这样显然还是布星的鸭,,,毕竟$n$的数据范围在$1e9$直接做显然$GG$不说 考虑组合数的意义,这个式子就相当于是,$n\cdot k$个物品中选出$d$个,其中$d\ mod\ p=r$ 然后就考虑$dp$鸭,设$f_{i\ j}$:前$i$个数选出来膜p意义下为$j$个数的方案数 转…
#include <cstdio> #include <iostream> using namespace std; +; +; +; ; int n,m,M; int a[max_n]; int dp[max_M][max_M]; // dp[i][j]:从前i件商品中,选出j个的组合数 void solve() { // 初始化dp数组,无论当前有多少件,一件都不取的方法只有一种哦 ;i<=n;++i) { dp[i][]=; } // 从第一件物品开始取 ;i<=…
题面 传送门:https://www.luogu.org/problemnew/show/P1066 Solution 这是一道神奇的题目,我们有两种方法来处理这个问题,一种是DP,一种是组合数. 这题需要高精度,以下省略此声明 . 如果你对数学不感兴趣/喜欢写DP/(不想虐待自己),这里是DP做法. 首先,我们可以发现,这个数最多有w/k位(向上取整),如下图所示: 那么,我们就可以以这个特性做DP啦. 设f[i][j]表示枚举到第i位(指2^k进制下的),最后一位数为j. f[i][j] =…
现场 1 小时 44 分钟过掉此题,祭之 大力分类讨论. 如果 \(|s|=1\),那么显然所有位置都只能填上这个字符,因为你只能这么填. scanf("%d",&n);mmp['+']=0;mmp['-']=1;mmp['*']=2; for(int i=1;i<=n;i++) scanf("%d",&a[i]); char opt[4];scanf("%s",opt+1);int len=strlen(opt+1); i…
B. Long Path time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output One day, little Vasya found himself in a maze consisting of (n + 1) rooms, numbered from 1 to (n + 1). Initially, Vasya is at th…
题目大意 [gdoi2018 day2]第二题 滑稽子图(subgraph) 给你一颗树\(T\),以及一个常数\(K\),对于\(T\)的点集\(V\)的子集\(S\). 定义\(f(S)\)为点集\(S\)的导出子图的边数(一条原树中的边只有两个端点都出现在\(S\)中,才会出现在导出子图中) 数据范围 解题方案 \(Part_1\) 5% 随便做 \(Part_2\) 30% 考虑一下DP. 设\(f[i][j][0/1]\)表示第\(i\)个点,导出子图边数为\(j\),第\(i\)个点…
[GDOI2016模拟3.15]基因合成 题意: 给一个目标串,要求从空串进行最少的操作次数变成目标串,操作有两种: 在串的头或尾加入一个字符. 把串复制一遍后反向接到串的末尾. 因为有回文操作,所以可以想到一些与回文有关的东西. 如Manacher,回文树-- 这里采用强大的回文树. 首先注意到目标串可以看作是由一个长度为偶数的回文串在首尾加上若干字符得到的一个串. 所以我们可以求出原串中所有的偶回文串,然后再加加减减一下. 但为什么长度为奇数的不用讨论呢? 这是因为长度为奇数的回文串不可能通…
传送门 思路 又见到这个\(k\)次方啦!按照套路,我们将它搞成斯特林数: \[ ans_x=\sum_{i=0}^k i!S(k,i)\sum_y {dis(x,y) \choose i} \] 前面可以枚举,考虑后面那东西怎么求. 我们不知道为什么但就是考虑DP:设: \[ dn_{x,t}=\sum_{y\in x} {dis(x,y) \choose t}\\ up_{x,t}=\sum_{y\notin x} {dis(x,y) \choose t} \] 其中\(y\in x\)表示…
传送门 题意:给出长度为$N$的两个正整数序列$A_i,B_i$,求$\sum\limits_{i=1}^N \sum\limits_{j=i+1}^N C_{A_i+A_j+B_i+B_j}^{A_i+B_i}$.$N \leq 2 \times 10^5$ 给出两种数据范围以及对应做法: ①$1 \leq A_i,B_i \leq 2000$(原题数据范围) 我们可以发现$C_{A_i+A_j+B_i+B_j}^{A_i+B_i}$就相当于在平面直角坐标系上限定每一次只能向上或者向右走一个单…
题目描述 输入 第一行有四个整数 n, p, k, r,所有整数含义见问题描述. 1 ≤ n ≤ 10^9, 0 ≤ r < k ≤ 50, 2 ≤ p ≤ 2^30 − 1 输出 一行一个整数代表答案. 样例输入 2 10007 2 0 样例输出 8 题目大意 问从nk个数中选出若干个,且选出数的数目mod k=r的方案数 题解 dp+快速幂/矩阵乘法 题目描述是骗人的,一个一个加根本不可能加的过来. 关于矩阵乘法的题解可以参考 popoqqq大爷的博客 ,时间复杂度为O(k^3logn),…
分析:设方案数为ANS,C代表组合数: ANS=(C[K,I]*C[K-I,I][K-2*I,I]*...*C[K-(J-1)*I,I])/(J!); 也即: ANS=C[K,I*J]*(C[I*J,I]*C[I*J-I,I]*C[I*J-2*I,I]*...*C[I,I])/(J!); 又因为C[I*J,I]/J=C[I*J-1,I-1]; 所以即化简为: ANS=C[K,I*J]*(C[I-1,I-1]*C[2*I-1,I-1]*...*C[I*J-1,I-1]);…
题目传送门 matthew99神犇的题解讲得非常清楚明白,跪烂Orzzzzzzzzzzzzz 总结一下,本题有很多重要的突破口 1.Lucas定理 看到n,m特别大但模数特别小时,容易想到$lucas$定理 $C_{n}^{m}=C_{n/p}^{m/p}\cdot C_{n\;mod\;p}^{m\;mod\;p}\;(mod\;p)$ 但普通的$lucas$显然不适用于多次计算,我们可以把$lucas$定理展开 我们把$n$和$m$都看成两个$p$进制数$a$和$b$ $C_{n}^{m}=…
先看第一题,有n*m个点,求在这些点中,有多少条直线,经过了至少两点,且不是水平的也不是竖直的. 分析:由于对称性,我们只要求一个方向的线即可.该题分成两个过程,第一个过程是求出n*m的矩形中,dp[i][j]代表在这个矩形中终点是到(i,j)这个点的满足题意的直线条数,那么,用dp的话就可以得出递推关系:由长和宽分别小1的左右两个矩形中满足题意的线的条数减去他们共有的矩形中满足的线的条数(容斥减去重复部分),之后还要判断从最左上角的点(1,1)到(i,j)是否可以组成一条线,这个条件是gcd(…
题目描述 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 contains one skewer, Ai pieces of beef and Bi pieces of green pepper. All skewers in the…
这题就是要求 \(\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…
D. Time to go back time limit per test:1 second memory limit per test:256 megabytes input:standard input output:standard output You have been out of Syria for a long time, and you recently decided to come back. You remember that you have M friends th…
题目链接:https://vijos.org/p/2006 当时在考场上只想到了暴力的做法,现在自己看了以后还是没思路,最后看大佬说的杨辉三角才懂这题... 我自己总结了一下,我不能反应出杨辉三角的递推是因为对组合C和排列S不熟悉导致的,这些公式基本都是我的短板 从杨辉三角形看出,杨辉三角的i,j位(有0位)就是在i个数选j个出来的方案数,,我们来看下杨辉三角吧 -------------------------------------------------------------------…
A. 小P的2048 模拟.....又没啥可说的,以后要认真打打模拟题了... B. 小P的单调数列 考场$n^2log(n)$的SB思路有人听吗 正解当然不是这样, 事实上我们每次选取的只有一段区间,或是两段区间 假设三段区间$a,b,c$,假设$(a+b)/2>(a+b+c)/3$得出$(a+b)/2>c$ 假设$c>(a+b+c)/3$得出$c>(a+b)/2$,也就是说我们我们不如选一个或两个区间优 其实自己想想也发现我们选多个区间不如选其中最大的一两段值更大 然后就很简单…
题目链接:http://acm.swust.edu.cn/problem/0247/ Time limit(ms): 1000 Memory limit(kb): 65535   Description 在很久很久以前,有个臭美国王.一天,他得到了一件新衣,于是决定巡城看看老百姓的反应(囧).于是他命令可怜的宰相数一下他有多少种巡城方案. 城市是一个N*M的矩形,(N+1)*(M+1)条街把城市分成了N*M块.国王从左下角出发,每次只能向右或向上走,右上角是终点. 请你帮帮可怜的宰相.   In…
题目链接:http://acm.swust.edu.cn/problem/715/ Time limit(ms): 1000 Memory limit(kb): 65535   在数据加密和数据压缩中常需要对特殊的字符串进行编码.给定的字母表A 由26 个小写英文字母组成A={a,b,…,z}.该字母表产生的升序字符串是指字符串中字母按照从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1 次.例如,a,b,ab,bc,xyz 等字符串都是升序字符串.现在对字母表A 产生的所有…
传送门 一页书的书 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 53            测试通过 : 10  题目描述 一页书前辈作为一位得道高僧,在他无悔的生涯中创作了许多经典,被世人称作百世经纶.这一天有m个粉丝来膜拜书大,书大很开心,决定送他们每人一本经典.已知一页书一共创作了n部作品,每部作品分别有a1.a2…an份藏本,那么书大一共可以有多少种送书的选择呢?(由于计算结果可能很大,请把结果对…
目录 Day 1 组合计数 1.组合数 (1).C(n,m) 读作n选m,二项式系数 : (2).n个东西里选m个的方案数 不关心选的顺序: (3).二项式系数--->多项式系数: 2.组合数计算 (1).递归.纯相加.带初始值的公式(递推:考虑选不选最后一个元素): (2).初值(O(n^2)预处理): (3).运算(复杂度O(n)): 3.组合数求前缀和 (1).过程大致如下: 4.组合数组合意义 (1).概念: (2).组合意义: (3).性质: (4).例题: 5.组合数例题 例1: 例…