
补题
文章平均质量分 66
本居小鈴
无尽深渊中,唯有你与我共行。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
牛客xiao白月赛 47 CD
牛客小白月赛 47 CD C 思路 模拟就可以了。从后往前扫可以交换的个数,并记录个数和最后交换的位置,直到扫描到前面的已经出队了停止。这样答案就是最后交换的位置,因为除了交换以外还有可能交换不了需要等待的小猫咪。 代码 #include <bits/stdc++.h> using namespace std; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n;原创 2022-04-10 12:56:02 · 364 阅读 · 0 评论 -
【补题】上帝与集合的正确用法(扩展欧拉定理的简单应用)
上帝与集合的正确用法 题目传送门:P4139 上帝与集合的正确用法 题意 给定一个数字ppp,求: 222⋯ mod p 2^{2^{2^{\cdots}}} \bmod p 222⋯modp 思路 因为可能存在ppp与2不互质的情况,所以要使用扩展欧拉定理。 使用扩展欧拉定理构造一个同余式子: 222⋯≡2222⋯ mod φ(p)+φ(p)(modp) 2^{2^{2^{\cdots}}} \equiv 2^{ 2^{2^{2^{\cdots}}} \bmod \varphi(p) + \varphi(原创 2022-03-28 15:21:05 · 587 阅读 · 0 评论 -
【补题】CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes) ABC
CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!) A-C 太菜了…… 剩下的题目还得补。 A 题意 给一个数列,任选两个位置i,ji,ji,j,这两个位置可以重叠,使得∣ai−ak∣+∣aj−ak∣=∣ai−aj∣|a_i-a_k|+|a_j-a_k| = |a_i-a_j|∣ai−ak∣+∣aj−ak∣=∣ai−aj∣。kkk位置也是任意。 思路 因为位置可重叠,所以直接找最大值和最小值的位置即可。 代码(c++) #include <b原创 2022-03-25 13:53:08 · 501 阅读 · 0 评论 -
【日志】扩展中国剩余定理
扩展中国剩余定理(P4777 【模板】扩展中国剩余定理) 原题传送门 中国剩余定理被划分为useless算法了 不过中国剩余定理能做的,扩展中国剩余定理(应该)都能做到 过程 考虑两个同余方程。 x≡a(modb)x≡c(modd) x \equiv a \pmod b\\ x \equiv c \pmod d x≡a(modb)x≡c(modd) 从模的定义上,可以将第一个式子转化为: x=bt+a x = bt + a x=bt+a 之后再将方程带入二式,得: bt+a≡c(modd) bt + a \原创 2022-03-25 00:10:37 · 1450 阅读 · 0 评论 -
【补题】P1082 [NOIP2012 提高组] 同余方程
P1082 [NOIP2012 提高组] 同余方程 题目传送门:P1082 NOIP2012 提高组 同余方程。 思路 是一道使用扩展欧几里得算法的模板题。 扩展欧几里得算法可以求出两个整数xxx和yyy,使得: ax+by=gcd(a,b) ax+by=\gcd(a,b) ax+by=gcd(a,b) 题目要求的式子则为: ax≡1(modb) ax \equiv 1 \pmod b ax≡1(modb) (实际上是求a在模b意义下的逆)。 所以,可以直接使用Exgcd求出解。 代码 一种可行的c++代原创 2022-03-18 00:00:10 · 1467 阅读 · 0 评论 -
【补题】UVA11992 Fast Matrix Operations(使用类包装的线段树)
UVA11992 Fast Matrix Operations 题目传送门 题目大意 需要对一个初始全为0的矩阵进行操作。给定两个点,并执行下面三个操作: 对给定两个点中间的范围加上val。 将给定两个点中间的范围全部赋值为val。 询问给定两个点中间的范围中所有元素的和和其中的最大值与最小值。 矩阵不超过20行。 思路 因为矩阵不超过20行,可以考虑每一行直接开一棵线段树进行维护。 区间加法与查询 区间加法和查询很简单,只需要参照正常线段树,一颗一颗维护就行。 要注意的一点,区间加法对于最大值和最小原创 2022-03-15 23:09:50 · 115 阅读 · 0 评论 -
【日志】可持久化线段树2(静态主席树)
可持久化线段树求区间第kkk小值(主席树) 例题:P3834 【模板】可持久化线段树 2 考虑一个问题:给定nnn个数字,之后询问在[l,r][l,r][l,r]内的第kkk小的值是多少。 暴力写法 考虑暴力写法。简单来说,给这几个数字直接sort一下,就求到了。 然后ttt组询问直接把时间复杂度卡上天。 主席树 主席树一种基于线段树的数据结构,全称是可持久化权值线段树(然而思想更重要)。 对于求区间第k小,可以使用主席树(如果想尝试每一次都开一棵线段树也行,MLE) 使用主席树求区间第k小问题 先不考虑怎原创 2022-03-06 00:34:03 · 275 阅读 · 0 评论 -
【补题】序列操作
序列操作 这题来自于DamayuanOJ的每日一题Dv1。 题目大意 给定一段序列,需要对其执行以下给定操作: 给定一个位置和一个数字y,将该位置的数字改为y 给定一个数字y,将目前数组中的所有低于y的数字改为y 只需要在执行完毕操作后即可。 大佬用离线算法解决了这道题,我太菜撸了棵线段树上去硬模拟这个过程。 因为这道题只需要执行操作后再输出,所以过程其实不重要。不过貌似用线段树做也可以…… 具体思路 虽然是使用了线段树,但是实际上数组仍然是操作的对象。使用线段树可以更方便的管理区间元素,所有的操作结果原创 2022-03-03 09:02:28 · 206 阅读 · 0 评论 -
【补题】AC自动机的三道模板题
AC自动机三道模板题 虽然是模板题,但是写出来的全是WA自动机 P3808 【模板】AC 自动机(简单版) P3808 【模板】AC 自动机(简单版) 这道题是AC自动机的模板题,只需要老老实实建立fail指针,建fail时顺带建边优化fail即可。 题目要求,求文本串中出现了几个模式串,只需要记录end,然后跳fail就行(为什么要跳fail可以画个图,顺便再把fail独立出来)。 只要在用的时候不要忘了调用建fail就行。 下面是一个模板。 struct ACAM { int child[MAXN原创 2022-03-02 08:57:54 · 223 阅读 · 0 评论