上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 120 下一页
摘要: 显然,$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 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 分析一波发现如果一个序列合法,那么必须满足所有数都是最小值的倍数. 加上组合数就行了. code: #include <bits/stdc++.h> #define ll long long #define mod 998244353 #define N 500006 #define setIO(s 阅读全文
posted @ 2020-06-04 11:14 EM-LGH 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 手完一下发现对于两个点求 LCA 来说,最优策略是对于 DFS 序相近的两个点去求. 所以把所有点按照 DFS 序排序,然后相邻两个依次求一下就行了. code: #include <bits/stdc++.h> #define ll long long #define N 100007 #defi 阅读全文
posted @ 2020-06-03 15:48 EM-LGH 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 后缀自动机的做法很显然:建出后缀树,线段树合并,然后倍增的时候更新答案就行. 后缀数组的做法也挺显然:二分答案,然后用主席树判定一下 $[a,b-mid+1]$ 是否有值即可. code: #include <bits/stdc++.h> #define N 200006 #define lson 阅读全文
posted @ 2020-06-03 10:34 EM-LGH 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 暴力枚举的话是 $O(n^2)$ 的,但是我们可以维护每个圆的外接矩阵,然后显然如果一个圆会被当前圆删,外接矩阵一定有交集,所以就可以用 KDtree 来剪枝了. 直接做的话洛谷上能过,LOJ 上要在开始的时候把所有点都旋转一个特定的角度来保证随机性. code: #include <bits/st 阅读全文
posted @ 2020-06-02 23:01 EM-LGH 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 自己想出来的,还是相当开心的(说实话这题也不难 QAQ......) 首先,那个时间限制非常好处理:离线然后拆成插入和删除就行. 对于每一种元素的每一个位置维护一个 $pre_{i}$ 表示上一次出现的位置. 假设我们查询的位置是 $pos$,我们二分答案 $mid$. 如果 $mid$ 合法,就要 阅读全文
posted @ 2020-06-02 16:50 EM-LGH 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 非常有意思的 dp,很难想出来吧. 如果对着图去想,很难有思路,所以可以把图上的问题转化为序列问题. 我们发现,如果一个点集合法,当且仅当这个点集构成一个不降序列,且其他点都与这个点集形成逆序对. 令 $f[i]$ 表示由 $1$ ~ $i$ (选 $i$ )构成的合法方案数. 然后如果不选一个元素 阅读全文
posted @ 2020-06-02 11:51 EM-LGH 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 这个状压状态时显然的,但是总状态数有 $\binom{K}{P}$. 好在题目中有一个要求,就是每个格子必须经过一次,所以说我们压缩的长度为 $P$ 的状态中首位必为 1. 那么状态数就减小为 $\binom{K-1}{P-1}$,来一个矩阵乘法就行了. code: #include <cstdio 阅读全文
posted @ 2020-06-02 10:44 EM-LGH 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 令 $f[i][k][j]$ 表示考虑前 $i$ 个位置,有 $k$ 次更新,且最大值为 $j$ 的方案数. 转移的话是一个前缀和. 由于是多组询问,所以可以先预处理出来. 细节什么的要注意一下. code: #include <bits/stdc++.h> #define ll long long 阅读全文
posted @ 2020-06-02 09:42 EM-LGH 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 我们发现最多只会用 n 个背包. 令 $f[S]$ 表示装完 $S$ 的物品所需最少背包数量. 令 $g[S]$ 表示满足 $f[S]$ 的情况下剩余的最大重量. 转移略复杂,细节比较多. code: #include <bits/stdc++.h> #define N 24 #define inf 阅读全文
posted @ 2020-06-02 09:11 EM-LGH 阅读(111) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 120 下一页