随笔分类 -  数学

摘要:设f[i]表示还剩i个没买,那么可以有式子f[i] = (n i) / n f[i] + i/n f[i 1] + 1 抽到已经抽到过的,或者是没抽到过的 这个状态其实也可以某方面地说成,抽i个的期望花费,但是我这里抽i个不是随便抽i个,而是说如果存在一种方案,这个方案抽取顺序是1 ~ n,那么从第 阅读全文
posted @ 2018-11-02 21:33 Zolrk 阅读(97) 评论(0) 推荐(0)
摘要:虽然说通过组合数递推公式可以看出来$C(i,j)=C(i 1,j 1)+C(i 1,j)$ 就是杨辉三角公式,但是还是有一个很关键的差别...就是当j=1时这个公式不太管用...比如说$C_3^1$ 表示从三个东西里面选一个,有三种选法,这个就需要提前处理了... 矩阵前缀和搞一下就好了 求组合数的 阅读全文
posted @ 2018-11-02 14:22 Zolrk 阅读(93) 评论(0) 推荐(0)
摘要:直接做多重背包复杂度太高了,我们想想是什么因素限制了如此高的复杂度 如果没有硬币个数的限制呢?直接用完全背包预处理后查询就好了 那么现在考虑一个较为简单的问题,只有一种硬币有限制 设dp[s]为买了价值为s时的方案数,先 暂时当做 完全背包预处理出dp数组 若那个 唯一 被限制硬币的面值为c,个数为 阅读全文
posted @ 2018-11-02 07:29 Zolrk 阅读(124) 评论(2) 推荐(0)
摘要:我被博弈的P position和N position的定义限制了思想 实际上我可以先寻找必胜态,然后用定义来证明这个必胜态 这是一个环,题目说至少存在一条边数值为0,先考虑简单问题,整个环只有一个0,那么从起点开始,先手不断取0,“迫使”后手不断往0靠近,可以证明的是先手决定方向,后手不能违背这个方 阅读全文
posted @ 2018-11-01 19:14 Zolrk 阅读(142) 评论(0) 推荐(0)
摘要:这道题有着一个 转化思想 $k \bmod i \Leftrightarrow k i \lfloor\frac{k}{i}\rfloor$ 所以有$ans = \sum_i^n (k i \lfloor\frac{k}{i}\rfloor) =n k \sum_i^n(i \lfloor\frac 阅读全文
posted @ 2018-10-30 21:22 Zolrk 阅读(111) 评论(0) 推荐(0)
摘要:这种题应该格外注意“1”的问题(边界处理) 题意:给定N,求$1 \leq x,y \leq N$且gcd(x, y)为素数的(x,y)数对的个数 令p代表一个素数 $$gcd(x, y) = p \Rightarrow gcd(\frac{x}{p}, \frac{y}{p}) = 1$$ 于是有 阅读全文
posted @ 2018-10-30 20:07 Zolrk 阅读(113) 评论(0) 推荐(0)
摘要:如果你以(1,1)为坐标原点,那么是没有什么规律的 但如果你以(0,0)为坐标原点,仔细观察一下能发现每个能看到的点的坐标(x, y)互质 然后(x, y)既然可以那么(y, x)也行 矩阵坐标从0到N 1 注意phi[1] = 1 答案是$1 + 2 \sum_{i=1}^{N 1} \phi(i 阅读全文
posted @ 2018-10-30 18:19 Zolrk 阅读(107) 评论(0) 推荐(0)
摘要:这只是暴力算法 给定四个参数a0,a1,b0,b1,求满足$gcd(x, a0) = a1且lcm(x,b0)=b1$的x的个数 由lcm这个条件可确定x的上界,找b1的约数,每个都判断一下是否符合上述两个条件 我我我又爆int了 c++ include include include includ 阅读全文
posted @ 2018-10-29 21:49 Zolrk 阅读(156) 评论(0) 推荐(0)
摘要:这是一道非常典型的筛法,利用区间长度比较小,以及质数比较少,用少量的质数,只筛区间内部的合数,复杂度就不会很高 建议多开long long,很多时候你难以注意到哪里会爆int 还有就是可以自己估摸着数量级提前把素数表打完,别每次都重打一遍素数表 阅读全文
posted @ 2018-10-29 20:52 Zolrk 阅读(103) 评论(0) 推荐(0)
摘要:两个问题都需要按照 每个节点的相邻点 来思考解法。 把符合题目要求的,可产生联合权值的有序点对,称为 联合点 。 第一问 每个节点的子节点(相邻点)之间,彼此组成联合点,具体看图。 可以比较每个节点的相邻点的权值,得到最大子节点和次大子节点。 他们的联合权值就是这个节点所能 发现 的最大联合权值。 阅读全文
posted @ 2018-10-28 21:27 Zolrk 阅读(171) 评论(0) 推荐(0)
摘要:st表细节多。。。 用线段树维护也行,会慢一点 最大公约数这个东西区间上是“可加”的 所以可以很方便地合并出区间gcd 注意位运算优先级低,多加括号 c++ include include include include include using namespace std; const int 阅读全文
posted @ 2018-10-16 20:47 Zolrk 阅读(250) 评论(0) 推荐(0)
摘要:卡特兰数$C_{2n}^n C_{2n}^{n 1}$ 还有常用的递推: c++ int main() { scanf("%d", &n); f[0] = 1, f[1] = 1; for(int i=2; i include include include using namespace std; 阅读全文
posted @ 2018-10-14 14:15 Zolrk 阅读(230) 评论(0) 推荐(0)
摘要:题目求一种方案,使得图全连通并且所有边费用与距离之商最小 $\sum_{i∈e}cost_i$除以$\sum_{i∈e}dis_i$最小 可以考虑二分求解 可以假设这个值小于等于L时 存在 一个解,然后检查是否存在这个解,如果不存在说明L取小了 问题是为什么要假设“存在”,事实上如果假设“任意”,那 阅读全文
posted @ 2018-10-14 14:14 Zolrk 阅读(151) 评论(0) 推荐(0)