线段459579152 zhuanlan atcoder
AtCoder World Tour 2022 B The Greatest Two
原题面:https://atcoder.jp/contests/wtf22-day2/tasks/wtf22_day2_b 题面翻译: 一个长度为 \(n\) 的排列 \(p\),每次可以把一个长 \(k\) 区间的最大与次大值交换,问操作任意次数后可以得到的排列数量对 \(998244353\) ......
AtCoder Beginner Contest 335 G Discrete Logarithm Problems
洛谷传送门 AtCoder 传送门 考虑若我们对于每个 \(a_i\) 求出来了使得 \(g^{b_i} \equiv a_i \pmod P\) 的 \(b_i\)(其中 \(g\) 为 \(P\) 的原根),那么 \(a_i^k \equiv a_j \pmod P\) 等价于 \(kb_i \ ......
线段树练习
# Ⅰ.差分与前缀和 ## P2184 贪婪大陆 **题意** :给定防线长度 $n$ 和操作次数 $m$, 每次在 [$l$ ,$r$] 内布下一种雷,查询区间雷的种类数。 **分析** : 用线段的方式表示区间布的雷 : ![](https://cdn.luogu.com.cn/upload/i ......
李超线段树
李超线段树 李超线段树是一种求函数定点最值的线段树,思路高妙,用处也很广。 以模板题为例。 P4097 [HEOI2013] Segment 有 \(n\) 个操作,操作分两种。 在平面上加入一条线段,两端端点为 \((x_0,y_0)\) 和 \((x_1,y_1)\),第 \(i\) 条被插入的 ......
AtCoder Regular Contest 138
比赛链接 A - Larger Score 将一个 \(i\) 交换出前 \(K\) 个并将一个 \(j\) 交换进前 \(K\) 个需要的次数是 \(j-i\)。 于是只需要对于每个 \(j>K\) 找最大的 \(i\le K\) 使得 \(A_i<A_j\)。 B - 01 Generation ......
AtCoder Beginner Contest 335 (Sponsored by Mynavi)
AtCoder Beginner Contest 335 (Sponsored by Mynavi) A - 2023 代码: #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<l ......
AtCoder Beginner Contest 335 总结
ABC335总结 A.202<s>3</s> 翻译 给你一个由小写英文字母和数字组成的字符串 \(S\)。 \(S\) 保证以 2023 结尾。 将 \(S\) 的最后一个字符改为 4,并打印修改后的字符串。 分析 两种做法: 直接把最后一个字符改为4,然后输出。 输出前 \(n\) 个字符后输出4 ......
数据结构 - 线段树学习笔记
前言 果果终于讲线段树了 线段树太 TM 好用啦! But,强大的功能是需要码量来实现的。 定义 线段树是一种储存了一个序列的区间信息,并在各个区间中建立了关联的数据结构。 对于任意一个序列都可以建出它的线段树。 它是一颗完全二叉树,它的每一个节点都是一个区间。 对于每一个节点,其左儿子节点为这段区 ......
浅谈几类线段树、树状数组优化 DP
本文主要介绍几类线段树和树状数组优化动态规划的方法。 本文的理论部分比较简单,所以主要以题目讲解为主。 这是本蒟蒻的第一篇日报,如有问题,请指出,感谢。 Part 0. 前置知识 动态规划 线段树 Part 1. 属性在一个区间的进行转移 这是讨论的是形如 \(f_i=Y(i)+\max\limit ......
AtCoder Beginner Contest 335
A #include<bits/stdc++.h> using namespace std; void solve(){ string s; cin>>s; for(int i=0;i<s.size()-1;i++){ cout<<s[i]; } cout<<"4"; } int main(){ i ......
Atcoder Xmas Contest 2022 H - Happy Game
Atcoder Xmas Contest 2022 H - Happy Game H - Happy Game (atcoder.jp) 没找到英文题解的一道题,或许很冷门。神秘。 Problem 给一张简单无向联通图,初始所有点都为白点。A 可以选择一个点,将其染黑;之后每次操作 B 可以选择最多 ......
线段树
线段树 引入 线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。 线段树可以在 \(O(\log N)\) 的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 线段树 线段树的基本结构与建树 过程 线段树将每个长度不为 \(1\) 的区间划分成左右两 ......
AtCoder Beginner Contest 335
AtCoder Beginner Contest 335 康复训练 打的有点昏啊 A - 2023 #include <bits/stdc++.h> #define endl '\n' //#define int long long using namespace std; void solve() ......
AtCoder_abc335
A、2023 跳转原题点击此:A题地址 1、题目大意 给你一个字符串,要你对该字符串的最后一个字符改为4。 2、题目解析 直接通过string的性质即可,直接更改string的最后一个字符即可。 3、具体代码 #include<bits/stdc++.h> using namespace std; ......
AtCoder Beginner Contest 335
基本情况 ABD秒了,C卡了一会,空间换时间然后爆内存,最后交了个100多行的逆天模拟终于+4过。 赛后发现其实是手写了双端队列。 C - Loong Tracking C - Loong Tracking 思路很明显,空间换时间,把每个状态用数组全记录下来。 但是纯这样写数组会开的巨大,所以得让后 ......
P3372 【模板】线段树 1
原题链接 题后感 码量也太大了吧 小记 题解网上有,但是有关这个lazytag我要提一嘴,我建议不要记它,你只需知道修改的区间没有整体破坏时,其内部的元素内容暂不做修改 code 码量真大 #include<bits/stdc++.h> #define ll long long using name ......
P10009 [集训队互测 2022] 线段树 题解
题目链接:P10009 [集训队互测 2022] 线段树 神仙分块题,先给一下出题人的神仙官解:官解 前面还看得懂。后面是啥?这不是 ds 题咋和 dp、轮廓线扯上关系了。看了半天,还是这个启发了我: 其手玩下,在 Excel 里写一下,可以理解到这里其实是想表达的一个核心意思是啥:对于一组序列而言 ......
Codeforces&Atcoder VP记录
ABC308 \(\operatorname{A}\sim \operatorname{F}.\) A 按题意模拟即可。 B 用 map 存一下即可。 C 考察 sort 的应用,但是胜率要开 long double 存。 D 因为 snuke 长度只有 \(5\),所以可以记搜,设 \(f_{x, ......
Rust实现线段树和懒标记
参考各家代码,用Rust实现了线段树和懒标记。 由于使用了泛型,很多操作都要用闭包自定义实现。 看代码。 // 线段树定义 pub struct SegmentTree<T: Clone> { pub data: Vec<T>, tree: Vec<Option<T>>, marker: Vec<T ......
AtCoder_abc334
A、Christmas Present 跳转原题点击此:A题地址 1、题目大意 给你bat和glove的价格,选择价格高的那个,并输出"Bat"或者"Glove"。 2、题目解析 没啥好说的,直接比较即可,记得不要输错英文字母。 3、具体代码 #include<bits/stdc++.h> usin ......
线段树笔记
例\(1\) 题目描述 给定一个长为\(n\)的序列,有\(m\)次操作,每次操作为以下三种之一。 修改序列中的一个数 求序列中某连续一段所有数的两两乘积的和\(\text{mod} 1000000007\)。 求序列中某连续一段所有相邻两数乘积的和\(\text{mod} 1000000007\) ......
AtCoder Beginner Contest 295
B - Bombsd 难度: ⭐ 题目大意 给定一个n*m的网格, 其中' . '表示空白, ' # '表示障碍物, 数字x表示此处有一个炸弹, 会将附近曼哈顿距离小于等于x的格子都变成空白; 问所有炸弹爆炸后的网格; 解题思路 数据范围很小, 暴力即可; 神秘代码 #include<bits/st ......
AtCoder Regular Contest 167 C MST on Line++
洛谷传送门 AtCoder 传送门 我是傻逼。很平凡的一个计数。但是不会啊。怎么会是呢。 考虑 Kruskal 求解 MST on Line 问题。我们可以想到统计边权 \(= a_i\) 的出现次数。 然后又可以容斥转化成统计边权 \(\le a_i\) 的出现次数,设其为 \(f_i\)。 考虑 ......
【模板】李超线段树 / [HEOI2013] Segment
李超线段树是一种用于维护平面直角坐标系内线段关系的数据结构,插入直线/线段,支持查询单点极值 李超树的经典应用是斜率优化,可以看下这篇文章 李超线段树没有用懒标记实现区间修改,而用的是标记永久化 其实标记永久化与我们对lazy标记的理解非常相同,可以看看LYD蓝书上对标记永久化的解释,都是累积某个节 ......
AtCoder Beginner Contest 334
B - Christmas Trees 难度: ⭐⭐ 题目大意 小莫从坐标轴的某个位置n种了一棵树, 并且每隔m米就再种一棵树, 注意是双向的, 两边都种; 给定一个区间, 问这个区间中有多少棵树; 解题思路 我们可以让区间的边界都减去n, 这样区间中的树都位于坐标km上; 然后我们把边界都平移到正 ......
AtCoder Regular Contest 168 F Up-Down Queries
洛谷传送门 AtCoder 传送门 貌似是第三道问号题?感觉前面这个转化不是人能想到的。。。 考虑维护 \(y\) 的差分序列。更进一步地,我们类比 slope trick,维护一个可重集,里面有 \(y_{i + 1} - y_i\) 个 \(i\)(为了方便我们让每次操作时 \(y_{m + 1 ......
atcoder
DP ABC275E ABC274D ABC274E ABC271E ABC270D ABC266D 状态机模型 ABC265E map存状态+步骤型遍历(注意DP顺序)+复杂度证明 ABC262D 关于数字的DP,将一类数字分成一个状态加粗样式 ABC261D 没啥好说的 看题目写DP ABC25 ......
atcoder补题计划
DP ABC275E ABC274D ABC274E ABC271E ABC270D ABC266D 状态机模型 ABC265E map存状态+步骤型遍历(注意DP顺序)+复杂度证明 ABC262D 关于数字的DP,将一类数字分成一个状态加粗样式 ABC261D 没啥好说的 看题目写DP ABC25 ......
AtCoder_abc334
AtCoder_abc334 A - Christmas Present 题目描述 输入两个数 \(B,G(B \neq G)\) ,若 \(B\) 大,输出 Bat ,否则输出 Glove 。 解题思路 无 Code // Problem: A - Christmas Present // Con ......
UNIQUE VISION Programming Contest 2023 Christmas (AtCoder Beginner Contest 334)
UNIQUE VISION Programming Contest 2023 Christmas (AtCoder Beginner Contest 334) A - Christmas Present 代码: #include <bits/stdc++.h> using namespace std ......