随笔分类 -  数学

上一页 1 2 3 4 5 6 ··· 11 下一页
摘要:自己独立想出来的,开心. 首先,对于 $x$ 不等于 $y$ 的情况,显然只限制前缀/后缀. 然后如果没有 x 与 y 相等的情况的话我们完全可以枚举总的 1 的个数,然后限制后缀的就可以转化成限制前缀的. 如果引入 x 与 y 相等的情况,也就是说要求前缀或后缀都填满也按照上述方式处理即可. 但是 阅读全文
posted @ 2020-06-16 18:58 EM-LGH 阅读(214) 评论(0) 推荐(0)
摘要:题不难,但是求欧拉函数的部分要注意一下: 求欧拉函数的时候是没有必要取模的,因为一定能除开. 如果取模的话由于出题人没有保证存在逆元会出现错误. 由于 $[L,R]$ 区间大小不超过 $10^6$,然后每个数最多只有一个大于根号 R 的质因子,所以可以筛出来 $10^6$ 以内的质因数,然后调和级数 阅读全文
posted @ 2020-06-16 15:19 EM-LGH 阅读(173) 评论(0) 推荐(0)
摘要:朴素的矩阵乘法时间复杂度会爆炸,但是我们发现矩阵乘法的形式是一个 $(1 \times n) \times (n \times n)$ 的形式. 所以如果提前预处理出来 $(n \times n)$ 矩阵的 $2^i$ 次幂,然后每次询问的时候二进制拆分,复杂度就是 $O(n^2 \log 1e9) 阅读全文
posted @ 2020-06-10 10:02 EM-LGH 阅读(235) 评论(0) 推荐(0)
摘要:这题怕不是 sb 题吧,随便分类讨论一下 $i$ 乘不乘 2 倍就没了. 然后细节要注意一下:题中要求的是大于等于. 求值域在 $[L,R]$ 中的元素个数时我用的权值线段树,可能会比二分要慢一点,但是不用判边界. code: #include <bits/stdc++.h> #define ll 阅读全文
posted @ 2020-06-09 09:19 EM-LGH 阅读(128) 评论(0) 推荐(0)
摘要:显然,$sgcd(x,y)|gcd(x,y)$. 那么,$sgcd(x,y)=\frac{gcd(x,y)}{p[gcd(x,y)]}$ 其中 $p[x]$ 表示 $x$ 的最小非 1 质因子. 那么我们可以先把 $gcd(a[1],a[i])$ 都求出来,然后枚举这个最小质因子. 因为 $gcd( 阅读全文
posted @ 2020-06-08 14:47 EM-LGH 阅读(214) 评论(0) 推荐(0)
摘要:这个状压状态时显然的,但是总状态数有 $\binom{K}{P}$. 好在题目中有一个要求,就是每个格子必须经过一次,所以说我们压缩的长度为 $P$ 的状态中首位必为 1. 那么状态数就减小为 $\binom{K-1}{P-1}$,来一个矩阵乘法就行了. code: #include <cstdio 阅读全文
posted @ 2020-06-02 10:44 EM-LGH 阅读(177) 评论(0) 推荐(0)
摘要:这道题比的就是谁更细心. 令 $f[i]$ 表示前 $i$ 面玻璃的透过率(从 $1$ 射入) 令 $g[i]$ 表示前 $i$ 面玻璃的反射率(从 $i$ 射入) 然后进行递推就行. code: #include <bits/stdc++.h> #define ll long long #defi 阅读全文
posted @ 2020-05-27 08:48 EM-LGH 阅读(136) 评论(0) 推荐(0)
摘要:十分轻松的一道数学题. 这个整除非常不好搞. 但是呢,我们发现 $a[i]$ mod $x$ 可以等价于 $a[i]-\frac{a[i]}{x} \times x$,我们就构造出了公因式,然后推一推就没了. code: #include <bits/stdc++.h> #define ll lon 阅读全文
posted @ 2020-05-26 16:53 EM-LGH 阅读(150) 评论(0) 推荐(0)
摘要:题意:给定 $n$ 个点,$m$ 条边的图,求有多少子图满足子图 (即边可以任意定方向或消失)是一个 DAG ? $f(S)=\sum_{T \subseteq S} (-1)^{|T|-1} \binom{|S|}{|T|} f(S-T) 2^{E(S)-E(T)-E(S-T)}$. 这里 $E( 阅读全文
posted @ 2020-05-03 15:12 EM-LGH 阅读(167) 评论(0) 推荐(0)
摘要:题意:给定 $1$ ~ $2^n-1$ 每个数出现的概率. 每次会随机选择一个数字,与手中的数字 or 起来. 求:期望多少次使得手中的数字等于 $2^n-1$. 题解: 考虑 min-max 容斥. $\max(S)=\sum_{T \subseteq S} (-1)^{|T|} \min(T)$ 阅读全文
posted @ 2020-05-03 11:39 EM-LGH 阅读(167) 评论(0) 推荐(0)
摘要:公式:$\max(S)=\sum_{ T\in S} (-1)^{|T|-1} \min(S)$ code: #include <bits/stdc++.h> #define ll long long #define N 23 #define setIO(s) freopen(s".in","r", 阅读全文
posted @ 2020-05-03 10:26 EM-LGH 阅读(171) 评论(0) 推荐(0)
摘要:题意: 给定长度为 $n$ 的数列 $a[1...n]$. 对于 $1$ 到 $M$ 的每个整数 $d$,有多少个不同的数列 $b[1...n]$ 满足: 1. $1 \leqslant b[i] \leqslant M$. 2. $gcd(b[1...n])=d$. 3. 恰好有 $k$ 个位置满 阅读全文
posted @ 2020-04-30 15:26 EM-LGH 阅读(152) 评论(0) 推荐(0)
摘要:神仙 DP. 可以求解 $1$ 号点的答案 $val(1)=w$. 假设所选的 $S$ 集合包含 $w$,那么答案一定为 $1$. 令叶子节点个数为 $m$,则有 $2^{m-1}$ 个集合的答案为 $1$. 假设当前修改代价为 $i$,想让根节点的答案改变. 最优改变方式有两种:1.将小于 $w$ 阅读全文
posted @ 2020-04-29 08:16 EM-LGH 阅读(219) 评论(0) 推荐(0)
摘要:比较友好的背包+期望题. 刚开始没特判概率为 0 的情况,WA 了半天. 总是还是挺简单的吧,只要会期望的线性性就行. code: #include <bits/stdc++.h> #define N 207 #define M 203 #define mod 998244353 #define l 阅读全文
posted @ 2020-04-07 13:15 EM-LGH 阅读(186) 评论(0) 推荐(0)
摘要:题意:有 $n$ 种牌,每种牌有 $C$ 张. 有两种方法能组成一叠: - $(i,i+1,i+2)$ - $(i,i,i)$ 一副牌是合法的,当且仅当这副牌能被分成若干叠. 给出牌的种类数 $n$ 以及每种的张数 $C$,和每种牌必选的个数.(如果该牌必选 $k$ 张,则有 $C-k$ 张是可选可 阅读全文
posted @ 2020-03-14 15:55 EM-LGH 阅读(216) 评论(0) 推荐(0)
摘要:碰到这种题第一反应就是找循环节. 我们发现我们就是要求 $a[i]+P \times k=b[i] ( \mod Q)$ 中 $P$ 的 k 的个数. 那么对于 $a[i]$ 来说,最大步数为 $\frac{T-1-a[i]}{P}$. 而我们发现 $a[i]+ P \times k$ 的循环节是 阅读全文
posted @ 2020-03-14 09:18 EM-LGH 阅读(140) 评论(0) 推荐(0)
摘要:神仙题!!!! 其实还是有一点没有搞懂,但是大体上差不多懂了. code: #include <bits/stdc++.h> #define ll long long #define N 3200020 #define setIO(s) freopen(s".in","r",stdin) using 阅读全文
posted @ 2020-03-11 23:42 EM-LGH 阅读(178) 评论(0) 推荐(0)
摘要:这道题真考验一个人的数学感知啊..... 看到 $\frac{b- \sqrt d}{2}$ 的形式就要想到这是一个一元二次方程的一个根之一,然后去解. 想到这一步的话就好做了,因为我们可以列一个关于 $n$ 的递推式,然后矩阵乘法加速即可. 代码就不贴了.... 阅读全文
posted @ 2020-03-11 00:21 EM-LGH 阅读(101) 评论(0) 推荐(0)
摘要:CF1305C 题解: 我们发现虽然 $n$ 很大,但是模数很小,所以相当于 $n$ 个数对 $m$ 取模后不能有重复数字. 那么其实这个 $n$ 最大也就是 $m$ ,直接 $O(m^2)$ 暴力算就行了. code: #include <bits/stdc++.h> #define ll lon 阅读全文
posted @ 2020-03-05 22:56 EM-LGH 阅读(294) 评论(0) 推荐(1)
摘要:朴素的高斯消元是 $O(n^3)$ 的,但是由于叶节点是终止节点,所以可以逐层向上推成 $k\times f(fa)+b$ 的形式. 推到根节点时直接取根节点的 $b$ 值就可以了. code: #include <cstdio> #include <cstring> #include <algor 阅读全文
posted @ 2020-03-03 00:06 EM-LGH 阅读(222) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 ··· 11 下一页