线段459579152 zhuanlan atcoder

AtCoder Regular Contest 109 D L

洛谷传送门 AtCoder 传送门 这种题根本做不出来…… 考虑一个 L 形怎么方便地表示出来。可以发现对于组成 L 形的三个点 $(x_1,y_1),(x_2,y_2),(x_3,y_3)$,只要知道 $x = x_1 + x_2 + x_3$ 和 $y = y_1 + y_2 + y_3$,就能 ......
AtCoder Regular Contest 109

洛谷P5494 【模板】线段树分裂

传送门 ** 需要的前置知识:线段树合并。** #include <iostream> #include <algorithm> #include <cstring> #include <set> #include <map> #include <deque> #include <vector> t ......
线段 模板 P5494 5494

AtCoder Regular Contest 106 F Figures

洛谷传送门 AtCoder 传送门 晚自习的时候胡出来的做法((( 首先你会发现题目等价于求 $\sum\limits_{(\sum\limits_{i=1}^n a_i) = 2(n-1) \land \forall i \in [1,n], 1 \le a_i \le d_i} \prod\li ......
AtCoder Regular Contest Figures 106

ABC297F AtCoder Beginner Contest 297 F - Minimum Bounding Box 2

https://atcoder.jp/contests/abc297/tasks/abc297_f 在 $n \times m$ 的棋盘上放置 $k$ 个棋子,记矩形 A 为能覆盖所有 $k$ 个棋子的最小的矩形,求 A 的面积的期望 将问题反过来考虑,枚举每种矩形有多少种放置棋子的方案,对于一个 ......
297 Beginner Bounding AtCoder Contest

AtCoder Regular Contest 105 E Keep Graph Disconnected

洛谷传送门 AtCoder 传送门 显然终止态是只剩两个连通块,一个包含 $1$ 另一个包含 $n$,并且两个连通块内的边数均为 $\frac{sz(sz-1)}{2}$。 如果只在连通块内连边,那么能连的边的总数是 $\frac{n(n-1)}{2} - \sum\limits_{i=1}^{cn ......
Disconnected AtCoder Regular Contest Graph

P4069 [SDOI2016]游戏 李超线段树 维护区间优势线段的线段树

传送门 #include <iostream> #include <algorithm> #include <cstring> typedef long long ll; typedef std::pair<double, int> PDI; const int N = 1e5, M = 2e5 + ......
线段 区间 优势 P4069 4069

2022年江西省大学生程序设计竞赛 K.Peach Conference 线段树 懒标记清空

传送门 大致题意: ** 给定一个n和m,表示有区间大小为n,进行m次操作。** ** 输入m行,每行3个数字v, l, r。如果v等于0则表示查询[l, r]内桃子的数量,如果v不为0则表示给[l, r]区间修改全部加v,如果有某个点数量+v小于0,则修改为0即可。** 大致思路: ** 这个题和 ......

线段树

###一. 概述 线段树(Segment Tree)是一种用于处理区间查询和更新的数据结构 常用于解决一维区间相关的问题,如区间最值、区间和、区间乘积等 线段树的基本思想是将区间划分为一些小的子区间,并在每个子区间上维护一些信息 例如该区间的最值、和、乘积等,通过将大区间不断划分为小区间,直到每个小 ......
线段

AtCoder Beginner Contest 296

Transition Game 给定序列$a$,$1<=a_i<=n$,一场游戏有$n$个回合,第$i$回合时,第一个人先指定一个任意数$k$,第二个人任意选定一个$x$,$1<=x<=n$,然后$x:=a_x$执行$k$次,如果最后$x=i$,那么第二个人获胜,否则第一个人获胜 对于$n$个回合, ......
Beginner AtCoder Contest 296

AtCoder Beginner Contest 295

Three Days Ago 我们定义一个只由数字构成的字符串中的字符能够被重排成相同的两份,我们称这个字符串是个好字符串,比如12341234 现在给定一个字符串$S$,找出所有的$[l,r]$,使得在这段区间中的子段是个好字符串 题解:思维 + 组合计数 首先我们根据题意得到:一个好字符串中所有 ......
Beginner AtCoder Contest 295

Atcoder题解:Agc002_f

我们可以把这个理解成一种类似卡塔兰数的形式,我们发现,被安排的 $0$ 球总数 $i$ 和已经出现的颜色种数 $j$ 在任意时刻都必须满足 $i\ge j$。 然后就可以 $dp$ 了,我们每次钦定下一个转移的球是某种颜色。如果下一个转移的球不是 $0$,那么我们就一次性把后面所有这种颜色都安排好, ......
题解 Atcoder Agc 002

Atcoder题解:Agc004_e

$$吓死我了,还以为写了半天的被自己删掉了$$ $$但是 \text{Ctrl+S} 会保存草稿啊$$ $$以后一定要保留这个好习惯$$ 第一步转化题意,我们把“所有机器人移动”转化成“出口带着边框移动”,而在出口运动过程中超出边框的机器人,就“死”了。 然后我们发现,出口运动过程中,假设出口目前走 ......
题解 Atcoder Agc 004

Atcoder题解:Agc013_e

我们考虑转化题意,一个合法的将 $1\sim N$ 划分成长度依次为 $a_1,a_2,\cdots a_k$ 的小区间,对答案的贡献为 $a_1^2a_2^2\cdots a_k^2$。 化贡献为方案数,我们在每个长度为 $a_i$ 的小区间内放置两个独立的标记,每个合法的划分方案对放置标记方案种 ......
题解 Atcoder Agc 013

AtCoder 板刷 / vp 记录

ARC104 A 一道小学数学题,$X = \frac{A+B}{2}, Y = \frac{A-B}{2}$。 B 一道暴力题。发现子串合法的充要条件是 $cnt_{\text{A}} = cnt_{\text{T}} \land cnt_{\text{G}} = cnt_{\text{C}}$, ......
板刷 AtCoder vp

AtCoder Regular Contest 104 F Visibility Sequence

洛谷传送门 AtCoder 传送门 考虑连边 $(i,p_i)$(若 $p_i = -1$ 则不连边),可以发现形成了一篇内向树森林且这个森林存在一个 dfs 序为 $1,2,...,n$。 这棵森林有如下性质: $\forall v \in son_u,h_u > h_v$ $\forall v, ......
Visibility Sequence AtCoder Regular Contest

AtCoder Beginner Contest 298

A - Job Interview (abc298 a) 题目大意 给定包含o-x的字符串,问是否不包含 x且包含o。 解题思路 遍历一遍即可。 神奇的代码 ```cpp #include using namespace std; using LL = long long; int main(voi ......
Beginner AtCoder Contest 298

poj2750(线段树+复杂区间合并)

Potted Flower POJ - 2750 思路:我们将题目简单化,假设我们要求的是序列的最大连续子段和,且可以包括所有数。 我们的线段树需要维护这段区间的最大前缀和pre,最大后缀和suf,区间和sum,区间连续最大和mx。 那么难点就在于如何由子节点更新父节点。 我们可以知道,tr[p]. ......
线段 区间 2750 poj

AtCoder Beginner Contest 223(D,E,F)

AtCoder Beginner Contest 223(D,E,F) D(拓扑排序) D 大意就是有$n$个点,$m$个关系,其中关系是指$u$和$v$,在排序里面使得$u$的位置再$v$的位置的前面 要求找到一个排序满足上述条件的序列中字典序最小的那一个 这个使用拓扑排序,并加上优先队列即可 只 ......
Beginner AtCoder Contest 223

AtCoder Beginner Contest 293 补题记录 (E-G)

E 题意:给定 A, X, M, 计算 (A0 + A1 + A2 + ... + AX-1) mod M (1 <= A, M <= 109, 1 <= X <= 1012)。 根据等比数列求和公式,(A0 + A1 + A2 + ... + AX-1) mod M = ((AX - 1) / ( ......
Beginner AtCoder Contest 293 E-G

AtCoder Regular Contest 104 D Multiset Mean

洛谷传送门 AtCoder 传送门 很平凡的一道计数啊。 考虑将所有数都减去 $x$,那么就要求选的数和为 $0$。 正负分开考虑,$0$ 可以任意选。需要多重背包求 $f_{i,j}$ 表示选 $1 \sim i$ 的数和为 $j$ 的方案数。前缀和优化是平凡的。 code // Problem: ......
Multiset AtCoder Regular Contest Mean

poj2777(线段树)

Count Color POJ - 2777 思路:暴力能过,线段树维护这个区间的颜色,如果是混色则置为1,如果是单一颜色则设为这个颜色,修改就是正常的区间修改,区间查询就要变一下。还有题解是用二进制做得,可以学一下。 #define _CRT_SECURE_NO_WARNINGS 1 #inclu ......
线段 2777 poj

动态开点与可持久化线段树

1. 动态开点线段树 在讲可持久化线段树之前,先让我们来了解一下动态开点线段树。 常规的线段树大多都是只能够维护一个不算特别长$\le 10^6$以内的数组,但是对于$10^9$级别的数组却不能很好的维护(因为空间开不下),所以,我们有了动态开点线段树的想法:节点只有在有需要的时候才被创建。 比如说 ......
线段 动态

AtCoder Regular Contest 110 E Shorten ABC

洛谷传送门 AtCoder 传送门 考虑把 $\text{A}$ 看成 $1$,$\text{B}$ 看成 $2$,$\text{C}$ 看成 $3$,那么一次操作相当于选择一个 $a_i \ne a_{i+1}$ 的 $i$,将 $a_i$ 和 $a_{i+1}$ 替换成一个数 $a_i \opl ......
AtCoder Regular Contest Shorten 110

线段树(单点修改,区间查询)

题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上 x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 n,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。 接下来 m 行每行包含 33 个整 ......
线段 区间

CAD如何测量连续线段长度?CAD测量连续线段长度步骤

在CAD绘图过程中,经常会绘制一些连续的线段,如果想要知道这些连续线段长度的话,该怎么操作吗?CAD如何测量连续线段长度?下面小编就以浩辰CAD软件为例来给大家分享一下CAD测量连续线段长度的具体操作步骤吧! CAD测量连续线段长度步骤: 浩辰CAD软件中已经考虑到了这种需求,在CAD测量命令(DI ......
线段 长度 CAD 步骤

线段树区间和,区间修改,区间查询板子

#include <bits/stdc++.h> using namespace std; using LL = long long; #define lson (nd<<1) #define rson (nd<<1|1) #define mid (l+r>>1) const int N = 1e5 ......
区间 线段 板子

AtCoder Begining Contest 297 VP报告

AtCoder Begining Contest 297 VP报告 写在前面: 前面靠手速抢了点分,B卡了一小会,然后E想的时间比较长,其他的题目基本上出的还算平均,感觉D题的思路很巧妙,因为最近一直在学数学有关的,出的还算快,感觉还不错吧,毕竟代码都不长不会写的很急。 A - Double Cli ......
Begining AtCoder Contest 报告 297

广州大学第十七届ACM大学生程序设计竞赛 L. 因子模仿 - hard version 线段树维护矩阵

传送门 大致思路: ** 观察发现,茉美香胜利会叠加对手所有状态,茉美香失败会被对手叠加所有状态。我们可以用矩阵[a1, a2, b1, b2]表示两个人的状态(其中a1, a2表示茉美香, b1, b2表示对手)茉美香赢了之后的状态是[a1 + b1, a2 + b2, b1, b2], 茉美香输 ......
线段 大学 广州大学 矩阵 因子

AtCoder Beginner Contest 297

A - Double Click #include <bits/stdc++.h> using namespace std; #define int long long int32_t main() { int n , d; cin >> n >> d; vector<int> a(n); for( ......
Beginner AtCoder Contest 297

AtCoder Beginner Contest 297 题解

A - Double Click 直接模拟就好。 时间复杂度:$O(N)$。 #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include ......
题解 Beginner AtCoder Contest 297