摘要: f(i, j) 表示从(1, 1)走到(i, j) 的所有走法集合,存储集合中的路线中能够拿到的最大的花生数目。 f(i, j) 可以被不重不漏的分成两个部分: 从i - 1, j向南走一步到i, j的所有走法 从i, j - 1向东走一步到i, j的所有走法 所以有:\(f(i, j) = max 阅读全文
posted @ 2020-09-03 18:45 yys_c 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 技巧:蚂蚁相撞反向行驶,可以看成是两个蚂蚁穿过了对方,这个不影响答案 #include<iostream> using namespace std; const int N = 60; int a[N]; int n; int main(){ cin >> n; for(int i = 0; i < 阅读全文
posted @ 2020-09-03 16:57 yys_c 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 首先说明两个数如果不互质那么本题无解 裴蜀定理: \(gcd(a, b) = c, 如果c > 1那么一定存在x和y使得xa + yb = c\) 假设两个数不互质,假设存在最大的能表示的数m,那么有: \(xa + yb = m, 由于gcd(a, b) = c, 那么m = kc, 即xa + 阅读全文
posted @ 2020-09-03 16:04 yys_c 阅读(116) 评论(0) 推荐(0) 编辑
摘要: \(有一个长度为2n的01序列,其中1,0各n个,要求对于任意的整数k∈[1,2n],数列的前k个数中,\\ 1的个数不少于0的个数, 求对于任意一个n满足条件的串的个数。\) dp方法: $f(i, j)$表示存在i个0和j个1时满足条件的所有串的集合,存储数量属性 $1. i = 0: f(i, 阅读全文
posted @ 2020-09-03 10:44 yys_c 阅读(128) 评论(0) 推荐(0) 编辑