线段459579152 zhuanlan atcoder

学习笔记:线段树

在已经掌握线段树的基本用法后的做题整理。给自己复习用的。 用 $mid$ 表示 $(l+r)/2$,$u$ 表示当前区间节点(父区间),$ls,rs$ 分别表示当前区间的左、右子区间节点。 普通维护序列 P2023 [AHOI2009] 维护序列 修改:区间加,区间乘;询问:区间求和。 双倍经验:P ......
线段 笔记

P3919 【模板】可持久化线段树 1(可持久化数组) 题解

一、题目描述: 维护这样的一个长度为 $n$ 的数组,支持以下两种操作 $1$:在某个历史版本上修改某一个位置上的值 $2$:访问某个历史版本上的某一位置的值 每进行一次操作,就会生成一个新的版本(对于操作2,生成的就是一个完全一样的版本)。 版本编号即为当前操作的编号(从 $1$ 开始编号,版本 ......
线段 题解 数组 模板 P3919

线段树选记

1. [TJOI2018]数学计算 题目描述 小豆现在有一个数 $x$,初始值为 $1$。小豆有 $Q$ 次操作,操作有两种类型: 1 m:将 $x$ 变为 $x \times m$,并输出 $x \bmod M$ 2 pos:将 $x$ 变为 $x$ 除以第 $pos$ 次操作所乘的数(保证第 $ ......
线段

AtCoder Beginner Contest 206(Sponsored by Panasonic)(E,F)

AtCoder Beginner Contest 206(Sponsored by Panasonic)(E,F) E(容斥,gcd) E 这个题大意就是给出一个$l$和一个$r$,寻找满足以下条件的一对数$(x,y)$的数量 $gcd(x,y)!=1$ $gcd!=x$并且$gcd!=y$(从这一 ......
Sponsored Panasonic Beginner AtCoder Contest

AtCoder Beginner Contest 217 G Groups

洛谷传送门 AtCoder 传送门 不妨钦定组之间的顺序是最小值越小的组越靠前,这样可以给每个组按顺序编号。 设 $f_{i,j}$ 为考虑了模 $m$ 后 $< i$ 的数,目前有 $j$ 个非空组的方案数。 转移就是枚举模 $m = i - 1$ 的数新开了 $k$ 个组,设 $\le n$ 的 ......
Beginner AtCoder Contest Groups 217

线段树/树状数组————离散化操作

#include<bits/stdc++.h> using namespace std; typedef long long ll; #define endl "\n" const int N = 1e5 + 5; vector<int>vec; struct BIT { int c[N]; voi ......
线段 数组

[AtCoder-AT_ABC070C]题解(C++)

Part I Preface 原题目(Luogu) 原题目(AtCoder) Part II Sketch 给定一个正整数 $N(1 \leq N \leq 100)$,表示时钟数量。 接下来 $N$ 行,每行一个正整数 $T_i(1 \leq T_i \leq 10^{18})$,表示每个时钟旋转 ......
题解 AtCoder-AT_ABC AtCoder ABC 070

[AtCoder-AT_ABC070_A]题解(C++)

Part I Preface 原题目(Luogu) 原题目(AtCoder) Part II Sketch 给定一个正整数 $n(100\leq n \leq 999)$。 求 $n$ 是否是一个回文数,是输出 $\texttt{Yes}$,不是输出 $\texttt{No}$。 Part III ......
题解 AtCoder-AT_ABC AtCoder ABC 070

AtCoder Beginner Contest 209(D,E)

AtCoder Beginner Contest 209(D,E) D(树,lca) D 这个题给出$n$个点,$n-1$条边,有两个人,一个人在$c$点,一个人在$d$点,两人以相同的速度朝着对方走来(并且都是按照最短路的走法),问这两个人相遇是在点上,还是在路上 这一题意很好知道,就是判断这两点 ......
Beginner AtCoder Contest 209

AtCoder Regular Contest 135 E Sequence of Multiples

洛谷传送门 AtCoder 传送门 技巧性比较强的题(? 设 $a$ 为最优解的 $A$,则 $a$ 可以贪心构造,就是每一位都取到下界。 考虑设 $b_i = \frac{a_i}{i}$,因为 $i \times b_i < (i + 1) \times b_{i+1}$,则 $b_{i+1} ......
Multiples Sequence AtCoder Regular Contest

Atcoder Grand Contest 046 D - Secret Passage

思路挺自然的一道 agc。 首先发现删除完字符后的状态可以用一个三元组 $(i,j,k)$ 表示,其中 $i$ 表示删除完之后只剩 $[i+1,n]$ 的后缀,$j$ 表示可以在后面插入 $j$ 个 $0$,$k$ 表示可以在后面插入 $k$ 个 $1$,显然不同的三元组能够得到的串是不同的,而一组 ......
Atcoder Contest Passage Secret Grand

AtCoder Beginner Contest 152

Flatten 给定$n$个正整数$a_i$,,现在让你求出$n$个整数$b_i$,使得任取$1\le i < j \le n$,$a_ib_i=a_jb_j$始终成立,请你求出$\sum b_i$的最小值,答案对$1e9+7$取模 $1\le n \le 10^4$ $1 \le a_i \le ......
Beginner AtCoder Contest 152

Monoxer Programming Contest 2022(AtCoder Beginner Contest 238)(E,F)

Monoxer Programming Contest 2022(AtCoder Beginner Contest 238)(E,F) E(图) E 这个题大意就是给你一段区间和,问你可以根据这个区间和得到从$1$到$n$的和 这个题都说是一个很明显的图论题,但是我一开始真的没看出来,看来是练习不够 ......
Contest Programming Beginner Monoxer AtCoder

AtCoder Regular Contest 159简要题解

AtCoder Regular Contest 159 传送门 A - Copy and Paste Graph 图的邻接矩阵为 $$ \left( \begin{matrix} A & A & \cdots & A \ A & A & \cdots & A \ \cdots & \cdots & ......
题解 简要 AtCoder Regular Contest

AtCoder Regular Contest 134 E Modulo Nim

洛谷传送门 AtCoder 传送门 It's all MAGIC 这种题目一般先考虑局面要满足什么条件能必胜,然后根据这个性质来计数。 如果把黑板上的数写成一个集合 $S$,那么: $\varnothing$ 为必胜态,${1}, {2}$ 显然为必败态,打表发现其他单元素集合都为必胜态; 如果 $ ......
AtCoder Regular Contest Modulo 134

AtCoder Beginner Contest 242

A - T-shirt #include <bits/stdc++.h> using namespace std; int32_t main(){ double a , b , c , x; cin >> a >> b >> c >> x; if( x <= a ) cout << "1.00000 ......
Beginner AtCoder Contest 242

AtCoder Beginner Contest 285(B,D,E,F)

AtCoder Beginner Contest 285(B,D,E,F) B (暴力,非二分) B 这道题其实很简单,但是我在$vp$的过程,有了一个错误的认识,纠正一下 那就是,我把这个当成了一个二分题,并且还有点坚定不移,后来细想,发现不对 二分,适用于那种边界分明的那种题(左边一定是符合条件 ......
Beginner AtCoder Contest 285

[AtCoder-AT_ABC108_B]题解(C++)

Part I Preface 原题目(Luogu) 原题目(AtCoder) Part II Sketch Part III Analysis 观察这道题,我们很容易想到,必须推导出 $x1, y1, x2, y2$ 与 $x3, y3, x4, y4$ 之间的关系。 我们观察下图。 可以发现: $ ......
题解 AtCoder-AT_ABC AtCoder ABC 108

AtCoder Regular Contest 131 E Christmas Wreath

洛谷传送门 AtCoder 传送门 不难猜想有解充要条件为 $n \ge 5$ 且 $\frac{n(n-1)}{2} \bmod 3 = 0$。 发现如果钦定一个点的出边都为同一种颜色,那么条件 $2$ 一定满足。 那么题目等价于把 ${0,1,...,n-1}$ 分成 $3$ 组使得每组的和相等 ......
Christmas AtCoder Regular Contest Wreath

AtCoder Regular Contest 131 D AtArcher

洛谷传送门 AtCoder 传送门 观察可以发现: 使每支箭的距离都为 $D$ 一定不劣; 每支箭坐标一定为整数; 设最左边的箭坐标为 $x$,那么 $x$ 太小时可以把最左边的箭移到最右边,$x$ 太大时可以把最右边的箭移到最左边。计算可得 $x$ 的最优取值范围为 $x \in [-\left\ ......
AtArcher AtCoder Regular Contest 131

可持久化线段树

可持久化数据结构 (Persistent data structure) 总是可以保留每一个历史版本,并且支持操作的不可变特性 (immutable)。主席树全称是可持久化权值线段树,给定 nn 个整数构成的序列 aa,将对于指定的闭区间 [l,r][l,r] 查询其区间内的第 kk 小值。 可持久 ......
线段

「学习笔记」可持久化线段树

可持久化数据结构 (Persistent data structure) 总是可以保留每一个历史版本,并且支持操作的不可变特性 (immutable)。 主席树全称是可持久化权值线段树,给定 $n$ 个整数构成的序列 $a$,将对于指定的闭区间 $\left[l, r\right]$ 查询其区间内的 ......
线段 笔记

AtCoder Regular Contest 128 E K Different Values

洛谷传送门 AtCoder 传送门 考虑判断有无解。把序列分成 $c = \left\lceil\frac{len}{k}\right\rceil$ 段,则 $\forall a_i \le c$ 且 $\sum\limits_{i=1}^n [a_i = c] \le ((len - 1) \bm ......
Different AtCoder Regular Contest Values

AtCoder Regular Contest 134 D Concatenate Subsequences

洛谷传送门 AtCoder 传送门 我一年前甚至不会做/qd 发现 $a_{x_1}$ 为 $k = \min\limits_{i=1}^n a_i$ 时最优。然后开始分类讨论: 如果 $\min\limits_{a_i = k} a_{i+n} \le k$,答案为 $(k, \min\limit ......

AtCoder Regular Contest 133 D Range XOR

洛谷传送门 AtCoder 传送门 很典但是并不会做…… 设 $s_i = \oplus_{i=0}^n i$,所求即为: $$\sum\limits_{l=L-1}^R \sum\limits_{r=l+1}^R [s_l \oplus s_r = V]$$ 考虑把它化成下界相同的形式,即求: $ ......
AtCoder Regular Contest Range 133

AtCoder Beginner Contest 300

A - N-choice question #include<bits/stdc++.h> using namespace std; int read() { int x = 0, f = 1, ch = getchar(); while ((ch < '0' || ch > '9') && ch ......
Beginner AtCoder Contest 300

AtCoder Regular Contest 128 D Neq Neq

洛谷传送门 AtCoder 传送门 考虑把所有 $a_i = a_{i+1}$ 的位置断开,分别计算然后把方案数乘起来。接下来的讨论假设 $a_i \ne a_{i+1}$。 考虑一个 dp,设 $f_i$ 为 $[1,i]$ 最后剩下的集合的方案数。转移需要从之前所有可以被删的区间转移过来。 现在 ......
Neq AtCoder Regular Contest 128

AtCoder Beginner Contest 242(D,E)

AtCoder Beginner Contest 242(D,E) D(二叉树搜索) D 题目大意就是首先给你一个字符串,代表$S^0$,然后我们可以操作得到$S^1,S^2$等等 我们可以知道$S^i$是拿$S^(i-1)$经过一系列替换而来的,因为这个字符串只有三种字符串,$A,B,C$,这个替 ......
Beginner AtCoder Contest 242

AtCoder Regular Contest 125 F Tree Degree Subset Sum

洛谷传送门 AtCoder 传送门 首先将度数 $-1$。 设 $f_i$ 为体积为 $i$ 至多能用几个物品凑出来,$g_i$ 为至少。 我们现在要证明一个东西:$x \in [g_i, f_i]$,$(i, x)$ 合法。 首先若 $(s, x)$ 合法,那么必须满足 $s - x \in [- ......
AtCoder Regular Contest Degree Subset

Chemistry Experiment Codeforces Round 247 (Div. 2) 线段树动态开点,二分

第一次写的时候还不会线段树的动态开点,写了一个是线段树但是是$O(N^2)$的写法,现在用动态开点武装了自己,会了正解$O(qlog n^2)$。首先建立一个权值线段树,但这里的权值很大,通过动态开点去建树来节省空间,对于两种操作: 操作1,常见的动态开点的单点修改 操作2,二分答案,然后在线段树上 ......