08 2021 档案

摘要:反演好难啊 qwq 。 ∑ d = 1 n d ( ∑ i = 1 n / d ∑ j = 1 m / d i ∗ j ∗ [ gcd ⁡ ( i , j ) = = 1 ] ) \sum_{d=1}^nd(\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}i*j*[\gcd(i,j) 阅读全文 »
posted @ 2021-08-31 22:12 仰望星空的蚂蚁 阅读(5) 评论(0) 推荐(0) 编辑
摘要:solution: 考虑算法:整体二分 。 考虑没有删除怎么做。因为满足单调性,可以直接二分 使得队列人数第一次 ≥ B i \geq B_i ≥Bi​ 时的修改编号 。 加上删除操作后还是有单调性,只不过要 预处理出删除操作对查询的影响 。 这里抛出一个结论:从左往右扫描,删除对当前询问影响=当前 阅读全文 »
posted @ 2021-08-28 13:28 仰望星空的蚂蚁 阅读(23) 评论(0) 推荐(0) 编辑
摘要:solution: 不看题解做不出来 考虑翻转一些区间使得答案更优。(这里不讨论 [l,r] = ∅ \empty ∅ 的情况) 设 a_i 表示翻转前的答案, b_i 表示翻转后的答案。 性质一:任意两个翻转的区间一定有交集。 证明:考虑反证。假设有两个翻转区间交集为空,那么翻转前肯定比翻转后更优 阅读全文 »
posted @ 2021-08-27 15:26 仰望星空的蚂蚁 阅读(19) 评论(0) 推荐(0) 编辑
摘要:这是真正的线段树二分 首先拆分询问区间。可以证明每一层遍历到的区间不会超过 4 4 4 个。所以复杂度是 log ⁡ n \log n logn 。 类似的,可以通过 递归左子树->等待答案->递归右子树 的方法来查询 [l,r] 中最右或最左的满足条件的点。复杂度同样是 log ⁡ n \log 阅读全文 »
posted @ 2021-08-26 20:12 仰望星空的蚂蚁 阅读(219) 评论(0) 推荐(1) 编辑
摘要:solution: 网上一堆错解。 考虑 gcd 的性质: g(i+kj,j)=g(i,j) 观察到 m<=666 ,考虑枚举 (i,j) 其中 i<=j 。 记 c(i,j) 表示迭代的次数。不难发现 c(i,j) <=log(j)+1 ,这里有一个下取整很烦,记 g=gcd(i,j) ,枚举 k 阅读全文 »
posted @ 2021-08-25 11:10 仰望星空的蚂蚁 阅读(5) 评论(0) 推荐(0) 编辑
摘要:solution: 果不愧是 JOISC 毒瘤题。 正确的思考方式: 如果只有往右扫的操作,那么操作的顺序就不重要了,那么一个点往右移动只在于能包含它的最能往右的操作。 如果还有往上扫的操作,那么一个高度为 l l l 的往右扫的操作,实际上只能把还没扫除范围的点往右移,注意到被扫除范围的点一定是 阅读全文 »
posted @ 2021-08-23 22:30 仰望星空的蚂蚁 阅读(13) 评论(0) 推荐(0) 编辑
摘要:solution: 部分分好少。 若是有双向连边,那么双向边联通的集合可以视为一个集合。 对于一个大小为 s 的极大团 T 对答案的贡献为: T 内部有 s(s-1) 条边若有 k 个不同的节点连向 T ,有 sk 条边 in[u] : 入边,连向它的点的集合 out[u] :出边,第一维是所指向节 阅读全文 »
posted @ 2021-08-23 21:33 仰望星空的蚂蚁 阅读(10) 评论(0) 推荐(0) 编辑
摘要:题意:给你一个序列 a a a 找到只在 a a a 序列中出现一次的子序列数量。 solution: 考虑怎么去重。 首先满足条件的序列一定是包含在 a a a 的子序列中的。 设 dp[i] 表示必选第 i 个字符,满足条件的不同子序列数量。 先说转移方程: d p [ i ] = ∑ d p 阅读全文 »
posted @ 2021-08-23 11:47 仰望星空的蚂蚁 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题意:构造一个排列 p p p ,使得 p p p 的其中一个 LIS 为给定的序列 a a a 。保证 a a a 单调递增。 solution: 考点:数学归纳法。 我写的伪贪心 hhh。 如果 k=1 ,那么只有唯一的构造方案 n, n-1, …, 1 考虑从左往右构造,保证字典序最小。设当前 阅读全文 »
posted @ 2021-08-22 22:48 仰望星空的蚂蚁 阅读(4) 评论(0) 推荐(0) 编辑
摘要:solution: 毒瘤题。 注意我们只关注同余方程有解即可。 根据题意得到 a i + p i ∗ y = A T K ∗ x i a_i+p_i*y=ATK*x_i ai​+pi​∗y=ATK∗xi​ 化简得到 A T K ∗ x i ≡ a i ( m o d p i ) ATK*x_i\eq 阅读全文 »
posted @ 2021-08-22 14:41 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:solution: 猜到了结论,但是没有实力证明。 现在我把它证明出来了。 (i,j)=a_0, (i,j+1)=a_1 =>i=a_0x_0, j=a_0y_0, || i=a_1x_1, j+1=a_1y_1 =>lcm(a_0,a_1,…,a_n) | i 如果 i ≠ l c m ( a 0 阅读全文 »
posted @ 2021-08-22 12:15 仰望星空的蚂蚁 阅读(3) 评论(0) 推荐(0) 编辑
摘要:回滚莫队的精髓在于撤销。 本题要记录一个子树最小值,所以要用 vector 存路径,再倒序还原回去。 然后用 l a s t a n s lastans lastans 记录上次询问答案。 注意回收 T r i e Trie Trie 树上的节点。常数会小一些。 时间复杂度 O ( ( n + m 阅读全文 »
posted @ 2021-08-21 18:15 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:题目大意:给定n个数列,第 i 个数列包含ki个不超过m的正整数,同一数列里的数互不相同。每一秒将n个数列中的数左移一个位置,每个数列第一个数则移到该数列最后,并在一张纸上记下每个数列的第一个数。10^100秒过后,对于所有的1<=x<=m,求x在纸上出现的最长的连续的一段长度,该段必须是同一秒中记 阅读全文 »
posted @ 2021-08-21 16:19 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:LUOGU_4782_【模板】2-SAT 问题 #include<bits/stdc++.h> #define ll long long using namespace std; const int mx=4e6+5; int n,m,num,cnt,val[mx],c[mx],dfn[mx],vi 阅读全文 »
posted @ 2021-08-21 10:38 仰望星空的蚂蚁 阅读(4) 评论(0) 推荐(0) 编辑
摘要:LUOGU_4777_【模板】扩展中国剩余定理(EXCRT) 注意加快速乘,防止整数溢出。 #include<bits/stdc++.h> #define ll long long using namespace std; const int mx=1e5+5; int n; ll a[mx],m[ 阅读全文 »
posted @ 2021-08-21 10:34 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:solution: 考点:数学 + 2-sat 模型。 观察 k ≤ 4 k\leq 4 k≤4 肯定有猫腻。 设所有正方形的右边界最小值为 m n x mnx mnx 。 则可以证明若有解一定存在一个竹签使得其纵坐标为 m n x mnx mnx ,即调整坐标得到不劣的方案。 类似的也有同样的性质 阅读全文 »
posted @ 2021-08-20 20:27 仰望星空的蚂蚁 阅读(8) 评论(0) 推荐(0) 编辑
摘要:solution: 考虑怎样的一对星星会形成星座。 记 l [ i ] l[i] l[i] 和 r [ i ] r[i] r[i] 分别表示从第 i i i 个星星出发,能扩展到的最左和最右节点。 考虑反悔贪心,尽量使得答案更大。换句话说,当前点覆盖的区间一定比之前 [ l [ i ] , r [ 阅读全文 »
posted @ 2021-08-20 11:06 仰望星空的蚂蚁 阅读(14) 评论(0) 推荐(0) 编辑
摘要:首先我们知道, exgcd 中求得 x,y 的绝对值满足 : |x| <=b , |y| <= a 。同时 x, y 在数据大时远小于 a, b 规模。 例一:CF1244C The Football Season 首先看数据范围,a, b<=1e5, p<=1e17 , 来看错误的溢出写法: x= 阅读全文 »
posted @ 2021-08-19 18:12 仰望星空的蚂蚁 阅读(9) 评论(0) 推荐(0) 编辑
摘要:欧拉定理:对于互质的两个正整数 a a a 和 m m m,若 ( a , m ) = 1 (a,m) = 1 (a,m)=1,那么 a ϕ ( m ) ≡ 1 ( m o d m ) a^{\phi(m)}\equiv 1\pmod m aϕ(m)≡1(modm) 。注意 m > 1 m>1 m> 阅读全文 »
posted @ 2021-08-18 15:06 仰望星空的蚂蚁 阅读(23) 评论(0) 推荐(0) 编辑
摘要:solution: 考虑轮廓线 dp 。设 d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k] 表示当前处理到 ( i , j ) (i,j) (i,j) ,且最近的 m m m 个格子二进制和为 k k k 的最少操作数。 1 1 1 表示横贴条, 0 0 阅读全文 »
posted @ 2021-08-17 20:21 仰望星空的蚂蚁 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题意:给你一个序列,有翻转区间和查询操作,每次查询一段区间里面的所有字符能组成的不同回文串的个数。 字符集大小 = 10 , n , q ≤ 1 0 5 n,q\leq 10^5 n,q≤105 。 solution: splay 好题。对于每个节点,用桶记录每种字符出现的次数,区间翻转就把 l 的 阅读全文 »
posted @ 2021-08-17 16:32 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:题意:给定一个整数集合包含 A 1 , A 2 , . . . , A n A1,A2,...,A_n A1,A2,...,An​ ,我们定义整数集合的代价为:如果数的个数 ≤ 2 \leq2 ≤2 ,则代价为 0 0 0 ;否则将每个整数至少与一个另外的整数建立连接。两个整数建立连接的代价是 ∣ 阅读全文 »
posted @ 2021-08-17 15:34 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:solution: 核心考点是字符串排序。码量较大。 总的情况显然最多有 n m nm nm 种,通过二维散列比较子矩阵可以达到 l o g n + l o g m logn+logm logn+logm ,所以直接暴力枚举 + 比较大小即可。难点在比较大小的方法,我们设 p [ i ] [ j ] 阅读全文 »
posted @ 2021-08-17 08:12 仰望星空的蚂蚁 阅读(12) 评论(0) 推荐(0) 编辑
摘要:solution: 神仙状态。 考点:树形dp + 思维。 路径是可以重复的,简单地树形 dp 可能难以处理,考虑路径的拼接。 设 d p [ x ] [ i ] [ j ] dp[x][i][j] dp[x][i][j] 表示第 x 个点的子树内(除了自己)的奇偶性已经满足,i 记录第 x 个点的 阅读全文 »
posted @ 2021-08-16 13:08 仰望星空的蚂蚁 阅读(8) 评论(0) 推荐(0) 编辑
摘要:找规律。暂时没有严谨的做法。 根据定义,每次删除一条边,代价是两个连通块的最大值的和。所以最优决策是,每次找到一个代价最大的点 v a l m a x val_{max} valmax​,然后 按某种顺序 删除它所连接的所有边,然后递归到它们所形成的新的子树中。感性的理解是,我们要最早把代价最大的点 阅读全文 »
posted @ 2021-08-15 20:43 仰望星空的蚂蚁 阅读(14) 评论(0) 推荐(0) 编辑
摘要:题意:给定两个排列 p p p, q q q ,求排列 r r r 的方案数,满足任意 r i ≠ p i r_i\ne p_i ri​​=pi​ 并且 r i ≠ q i r_i\ne q_i ri​​=qi​ 。 n < = 3000 n<=3000 n<=3000 。 solution: 阅读全文 »
posted @ 2021-08-15 19:46 仰望星空的蚂蚁 阅读(13) 评论(0) 推荐(0) 编辑
摘要:构造题。 来看这个东东:如果 h k ≤ b < h k + 1 h^k\leq b< h^{k+1} hk≤b<hk+1 , 那么 R ( b , h ) = h R(b, h) = h R(b,h)=h 。 构造这个东东: b = g ⌈ h k g ⌉ a = h b + g b=g\lcei 阅读全文 »
posted @ 2021-08-15 15:28 仰望星空的蚂蚁 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题意:多组数据,每次给定一个 n ,求 l c m ( C ( n , 0 ) , C ( n , 1 ) , . . . , C ( n , n ) ) m o d 1 0 9 + 7 lcm(C(n,0),C(n,1),...,C(n,n))\bmod 10^9+7 lcm(C(n,0),C(n 阅读全文 »
posted @ 2021-08-15 15:05 仰望星空的蚂蚁 阅读(3) 评论(0) 推荐(0) 编辑
摘要:solution: 恶心题。考点:位运算 + 模拟。 我们将比赛分成两类:第一种是严格的胜利,即赢家的获胜位置严格小于输家的获胜位置。第二种是非严格的胜利,这意味着球员在球场上的获胜位置是相等的。 现在问题转化为在一个 3 列的网格上统计。提供 k c z n o l kcznol kcznol 大 阅读全文 »
posted @ 2021-08-15 10:51 仰望星空的蚂蚁 阅读(8) 评论(0) 推荐(0) 编辑
摘要:题意:定义 f(x) = x 的因子个数 ^ 3,g(x) = \sum_{i|x} f(x) 。求 g(A^B) mod 10007 。 A,B<=1e6 。 solution: 积性函数好题。 考点:唯一质因数分解 + 积性函数。 首先 f(x) 是积性函数。假设 f(x) = f(u*v) , 阅读全文 »
posted @ 2021-08-14 16:59 仰望星空的蚂蚁 阅读(5) 评论(0) 推荐(0) 编辑
摘要:solution: 图论 + 博弈论。 我们称操作前两个棋子间距离为偶数的一方为 猎人 ,不难发现 猎人 只会 win 或者 draw。这是因为终止状态中棋子的距离为 0 0 0 ,而 猎人 操作后一定是奇数,所以不可能走到对方的棋子上。当然要特判 猎人 一条边都走不到的情况。 考虑将图中所有的红色 阅读全文 »
posted @ 2021-08-13 20:50 仰望星空的蚂蚁 阅读(14) 评论(0) 推荐(0) 编辑
摘要:设 d p [ u ] [ x ] dp[u][x] dp[u][x] 表示以 u u u 为根的子树,选 x x x 个黑点时子树内的边对答案的最大贡献。 这个状态设得比较巧妙,求的是子树内边的贡献和。 d p [ u ] [ x ] = d p [ u ] [ x ] + d p [ v ] [ 阅读全文 »
posted @ 2021-08-13 16:50 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:考虑统计不包含颜色 i i i 的路径条数。 发现等价于:将所有 c [ u ] = i c[u]=i c[u]=i 的点删除后所有连通块的贡献。设 d p [ u ] [ i ] dp[u][i] dp[u][i] 表示以 u u u 为根的子树,不包括颜色 i i i 的连通块的大小。根据定义不 阅读全文 »
posted @ 2021-08-13 16:47 仰望星空的蚂蚁 阅读(13) 评论(0) 推荐(0) 编辑
摘要:solution: 数据结构毒瘤题。 算法一:考虑不带修改。首先分析出一个性质,最优区间一定是单调区间。因为 f ( l , r ) ≤ m a x ( l , r ) − m i n ( l , r ) f(l,r)\leq max(l,r)-min(l,r) f(l,r)≤max(l,r)−mi 阅读全文 »
posted @ 2021-08-13 16:26 仰望星空的蚂蚁 阅读(21) 评论(0) 推荐(0) 编辑
摘要:solution: 算法一:对于 n<=10 ,直接全排列枚举即可。 算法二:对于 n<=300 且 a[i]=1/2 ,直接分类讨论。 算法三:对于 n<=300 且 a[i] 是质数,问题转化为把 m 种颜色的球排列在一排,满足相邻球的颜色不同。 解法一 考虑 一种一种颜色地放。设 d p [ 阅读全文 »
posted @ 2021-08-12 19:36 仰望星空的蚂蚁 阅读(70) 评论(0) 推荐(0) 编辑
摘要:题意:给你一棵树,每次删除一个节点 i i i 和所连的边, a [ i ] a[i] a[i] 表示当前点所连的边的条数。令 g c d ( a [ 1 ] , a [ 2 ] , . . . , a [ n ] ) = k gcd(a[1],a[2],...,a[n])=k gcd(a[1],a 阅读全文 »
posted @ 2021-08-12 12:18 仰望星空的蚂蚁 阅读(5) 评论(0) 推荐(0) 编辑
摘要:交互题。 题意:你放置一个皇后的位置,不知道国王的初始位置。国王会向八个方向行动,每次国王先行,双方都必须移动。任何时刻国王都不能移动到皇后的攻击位置。你需要在不管国王怎样移动情况下都保证在有限步数内击败对方。 solution: 比较棘手的是不知道国王的位置。但是真的有必要知道它的位置吗? 比较容 阅读全文 »
posted @ 2021-08-12 10:05 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:因为学习的其他人的算法,所以叫学习笔记。。。 题意 : 维护序列,支持下列两个操作 : 把区间 [ l , r ] [l,r] [l,r] 中所有 x x x 的倍数除以 x x x。 查询区间 [ l , r ] [l,r] [l,r] 的和。 强制在线。 n ≤ 1 0 5 , a ≤ 5 × 阅读全文 »
posted @ 2021-08-10 17:14 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:前言 没事水的比赛。 Solution: 考场上猜对了结论。 本题的关键在于:对于一个二元组 ( d , k ) (d,k) (d,k),可以看作平面直角坐标系中的一次移动,即 (x,y)->(x+d,y+k) 。对应到图上,梯形面积 = 1 2 k ∣ 2 x + d ∣ \frac{1}{2}k 阅读全文 »
posted @ 2021-08-09 15:20 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:G - Connectivity 2 题意:给你一张无向图,有 n n n 个顶点和 m m m 条边,存在 2 m 2^m 2m 种不同的子图。求子图的数量满足 1 1 1 和 i i i 联通。 n < = 17 n<=17 n<=17。 Solution: 状压 dp 神题。 1 1 1 和 阅读全文 »
posted @ 2021-08-09 10:32 仰望星空的蚂蚁 阅读(9) 评论(0) 推荐(0) 编辑
摘要:题意 如果一个排列 P P P 满足对于所有的 i i i 都有 ∣ P i − i ∣ ≠ k |P_i-i|\neq k ∣Pi​−i∣​=k ,则称排列 P P P 是合法的。求有多少种合法的排列。 Solution: 本题的限制条件很像错排,但是区别在于并不是一一对应的。 考虑容斥。问题转 阅读全文 »
posted @ 2021-08-09 09:45 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:很棘手的树形 d p dp dp 。 设 d p [ u ] [ x ] dp[u][x] dp[u][x] 表示以 u u u 为根的子树,有 x x x 个节点失配的方案数。这样时间复杂度 O ( n 3 ) O(n^3) O(n3) 。 一个想法是直接继承重儿子,用 d s u − o n − 阅读全文 »
posted @ 2021-08-07 21:08 仰望星空的蚂蚁 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题意 给你一个长度为 n 的字符串,求印章长度的最小值,这个印章可以重复印刷同一个位置,但是每次必须恰好把所有字母都印到纸上。n<=5e5。 Solution: 考点:字符串匹配。 以为是水题,结果是神题。。。 k c z n o 1 kczno1 kczno1 是用 双向链表 + fail 指针 阅读全文 »
posted @ 2021-08-05 19:38 仰望星空的蚂蚁 阅读(18) 评论(0) 推荐(1) 编辑
摘要:题意 给定一个由+1和−1构成的长度为n的序列,提供两种操作: 1.将某一位取反,花销为x 2.将最后一位移动到第一位,花销为y 要求最终p+sumn=q,且p+sumi≥0(1≤i≤n),求最小花销 sumi为1-i的前缀和 Solution: 考点:贪心+分析性质。 首先考虑将后面一段接到前面, 阅读全文 »
posted @ 2021-08-05 16:20 仰望星空的蚂蚁 阅读(8) 评论(0) 推荐(0) 编辑
摘要:题意 给你 n 块石头的坐标 (x[i],y[i]) ,可以对任意一块石头交换横纵左边,代价为 w[i] ,求最小的代价使得 Max(x[i]-x[j])+Max(y[i]-y[j]) 最小。 Solution: 首先考虑当什么时候取到最小值。 结论:当所有石子都在 y=x 一侧时最优。 证明:首先 阅读全文 »
posted @ 2021-08-03 15:32 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:Easy Version 考虑对于 (i,j) 向上下左右连出的 有向边 。缩点后答案就是 in[i]=0 的个数。 Hard Version 由于不需要全部消除,所以贪心地全部消完是不可行的。 trick1: 对于这个图,我们只需要让第 i 行第 a[i] 块掉下即可,我们称其为特殊点; tric 阅读全文 »
posted @ 2021-08-02 19:29 仰望星空的蚂蚁 阅读(10) 评论(0) 推荐(0) 编辑
摘要:ABC 题都是模拟题,读清题意即可。 D - Secret Santa 考点:贪心。 思路:首先把能满足的满足掉,然后把剩下的任选一个匹配。可以证明,这样得到的答案是最大的。 然后我们考虑失配的情况。对于 b[i]=i 的情况一定是失配了,那么我们假设 b[j]=p[i],j!=i ,此时让 b[i 阅读全文 »
posted @ 2021-08-02 13:57 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题意 给定一个 n*m 的队列,每次操作选取一个位置 (i,j) 出队,然后填补空位。输出每次出队的编号。 Solution: 考点:模拟+数据结构。 算法一 对于 n,m<=1000 的数据,直接暴力模拟; 对于 n=1 的数据,可以树状数组维护: 稍加修改,可以得到 x=1 的做法, 期望得分 阅读全文 »
posted @ 2021-08-01 15:05 仰望星空的蚂蚁 阅读(93) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示