线段459579152 zhuanlan atcoder

c++ 线段树模板

洛谷模板:P3372 【线段树1】 #include <bits/stdc++.h> #define int long long using namespace std; const int N = 1e5 + 10; int a[N], d[N << 2], b[N << 2]; int n, q ......
线段 模板

Atcoder Beginner Contest 324 F Beautiful Path 题解-分数规划

为了更好的阅读体验,请点击这里 分数规划小技巧:尽可能将式子写成存在某种取值,使得不等式成立的形式。 不然可能需要绕几个弯才能想出来。 题目链接 题目大意:给出一个 DAG,每条边有一个 \(b_i, c_i\),保证从编号小的边向编号大的边连边,且 \(1\) 到 \(n\) 必有路径,求 \(1 ......
题解 Beautiful 分数 Beginner Atcoder

AtCoder Beginner Contest 321 C-321-like Searcher

可以观察到0-9的所有子集都能恰组成一个满足题目条件的数字,所以共有1022个数{除空集和0} 方法就是二元枚举,找出所有数然后排序。 #include <iostream> #include <cstdio> #include <vector> #include <algorithm> using ......
321 Beginner Searcher AtCoder Contest

Atcoder beginner constest319 Minimum Width

因为要求窗口的最小宽度,当宽度为w时满足条件,那么宽度为w+1时也满足条件,有此可见是有单调性的,那么可以用二分搜的方法,且此题目一定有解。因为M最大为2乘以10的5次方,Li最大为10的9次方,所以宽度最大为2乘以10的14次方,单词每次间隔1,所以这里设成10的17次方。之后就是套二分模板解暴力 ......
beginner constest Atcoder Minimum Width

线段树高阶学习指南

前置芝士 线段树基本框架 区间求和 const int N=100010; ll a[N],st[N*4],f[N*4]; int n,q; //向上传 void pushup(ll u){ st[u]=st[lc]+st[rc]; } //向下传 void pushdown(ll u,ll l,l ......
线段 学习指南 高阶 指南

线段树合并

P4556 [Vani有约会] 雨天的尾巴 /【模板】线段树合并 有 \(n(n≤10^5)\) 个点,形成树状结构。 有 \(m(m≤10^5)\) 次发放操作,每次选择两个点 \(x,y\) ,对 \(x\) 到 \(y\) 的路径上(包括 \(x,y\))的每个点发放一个 \(z(z≤10^5 ......
线段

线段树 trick 汇总

区间最大子段和 模板题(luogu.P4513) 思路 可以发现,求最大子段和的过程可以分解为许多状态,状态 \([l,r]\) 表示区间 \([l,r]\) 的各项参数,如最大子段和。每个状态 \([l,r]\) 可以由 \([l,\frac{l+r}{2}]\) 和 \([\frac{l+r}{ ......
线段 trick

AtCoder Regular Contest 166

Preface 上周末因为上课而且这天下午还有CF要打,所以就没现场打这场ARC了 这两天事情也特别多导致写题的时间很少,摸了好久总算是补了四个题 A - Replace C or Swap AB 感觉是我做法复杂了,怎么A题码量好大 首先我们找到所有\(Y\)中为\(C\)的位置,显然对应的\(X ......
AtCoder Regular Contest 166

题解 AtCoder wtf22_day1_b【Non-Overlapping Swaps】

给定一个排列,要求交换最多 $n-1$ 对元素,使得这个排列变成 [1,2,...,n] 的有序排列。 当然没有那么简单,对于交换还是有限制的,对于相邻的两次交换,不妨叫做 $(l_i, r_i)$ 和 $(l_{i+1}, r_{i+1})$,必须满足**这两个交换所对应的区间,没有交集**,即... ......

线段树入门

引言 线段树是一种较为强大的数据结构,支持多种操作: 区间询问 区间修改 单点询问 单点修改 其实单点操作当成特殊的区间操作就可以了。 正文 一下以维护区间和为例。 结构 线段树的思想是分治,将数组分为若干子区间进行维护,其中 编号为 \(1\) 的区间管理 \([1,n]\),它的左儿子是 \(2 ......
线段

一道有趣的线段树题目

\(T4\) 莫队 首先我们需要知道一种统计答案的方法。 我们记 \(R_i\) 表示右边第一个和他相同的位置。 那么我们记 \(a_i=\min(a_{i+1},R_i)\) ,那么贡献就是 \(a_i-i+1\) ,所以我们最后就是要维护 \(a_i\) 就好了。 但是实际上如果你要直接维护 \ ......
线段 题目 一道

谈谈"求线段交点"的几种算法(js实现,完整版)

谈谈"求线段交点"的几种算法(js实现,完整版) "求线段交点"是一种非常基础的几何计算, 在很多游戏中都会被使用到. 下面我就现学现卖的把最近才学会的一些"求线段交点"的算法说一说, 希望对大家有所帮助. 本文讲的内容都很初级, 主要是面向和我一样的初学者, 所以请各位算法帝们轻拍啊 嘎嘎 引用 ......
线段 整版 交点 quot 算法

Atcoder Grand Contest 016 E - Poor Turkeys

先思考这样一个问题:对于一只火鸡 \(i\),我们应该如何判断它最后是否能活下来。如果我们正着判断,我们其实并没有足够的证据表明每一次操作我们应该保留哪只火鸡,也就没法判断最终的答案。但是如果我们倒着考虑,我们发现,如果最后一次操作的两个火鸡都不是 \(i\),那么这次操作选啥对答案没有影响,而如果 ......
Atcoder Contest Turkeys Grand Poor

深入理解线段树

线段树(Segment Tree)是常用的维护区间信息的数据结构,它可以在 O(logn) 的时间复杂度下实现单点修改、区间修改、区间查询(区间求和、区间最大值或区间最小值)等操作,常用来解决 RMQ 问题。 RMQ(Range Minimum/Maximum Query) 问题是指:对于长度为 n ......
线段

AtCoder Regular Contest 166——A - Replace C or Swap AB

题目描述 中文题目描述 每个字符串的长度为N,由A, B和C组成。 通过对X执行以下三种操作任意次数(可能为零),确定是否有可能使X与y重合。 操作(1):选择X中的字符C替换为字符A。 操作(2):在X中选择字符C替换为字符B。 操作(3):选择X中的子字符串AB,替换为BA。更正式地说,选择一个 ......
AtCoder Regular Contest Replace Swap

Atcoder Regular Contest 166

只打了半场。 A. Replace C or Swap AB 首先如果存在某个 \(i\),使得 \(Y_i\) 是 C 且 \(X_i\) 不是,那么显然是不合法的,可以直接判掉。 那么除去上述情况 \(Y\) 中为字符 C 的位置 \(X\) 也只能是 C。它们把字符串分成了若干段,可以把每一段 ......
Atcoder Regular Contest 166

Atcoder Regular Contest 165

B. Sliding Window Sort 2 被题目名里的滑动窗口误导了,于是卡 B 40min /fn Description 给定长度为 \(n\) 的排列 \(P\) 和一个整数 \(K\)。一次操作定义为选择一个长度为 \(K\) 的区间,对原排列的这段区间升序排序,其余位置不变。 你要 ......
Atcoder Regular Contest 165

AtCoder Regular Contest 166 AB题题解

A - Replace C or Swap AB 个人感觉挺有意思的一道思维题(好久没做思维题了,竟然卡了一个小时)。 除去C不看,我们发现X序列中的A只能向后移动,B只能向前移动,且可以移动任意次数。 所以假如没有C的话,做法是这样的: 从前往后分别统计X和Y序列中的A的数目,若某一时刻发现X中A ......
题解 AtCoder Regular Contest 166

[Резюме] 广义李超线段树

李超线段树,简称李超树。它支持插入 **直线** 或 **线段**,并查询某个横坐标处的 **最值**。 本文以最大值为例,讨论广义李超线段树,与传统的李超线段树不同,它插入的是 **函数** 而非直线或线段,但为了保证正确的时间复杂度,对函数有较严格限制。 ......
线段 广义

AtCoder Beginner Contest 323 (ABC 323) D、E、F 题解

AtCoder Beginner Contest 323 (ABC 323) D、E、F 题解 D 题目大意 给 \(n\) 种数 \(s_i\) ,每一种数有 \(c_i\) 个,每次可以把两个相同的数合并为一个数,问最后会剩下多少数? 分析 对于每一个数 \(s_i\) ,它最多被分解 \(lo ......
题解 323 Beginner AtCoder Contest

AtCoder Beginner Contest 323

E - Playlist 首先需要算出第x+0.5秒后,第一首歌播放的概率 1.要在x+0.5秒后播放第一首,需要在x,x-1,x-2,...,x-t[1]+1,时就要开始播放第一首,并且概率是1/n,概率之和除以n 2.概率dp,dp[i]表示播放i的概率,那么可以转换成,dp[i]+=dp[i- ......
Beginner AtCoder Contest 323

UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323)

UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323) A. Weak Beats 解题思路: 按题意模拟即可。 代码: #include <bits/stdc++.h> using namespace ......
Contest Programming Beginner AtCoder UNIQUE

【题解】AtCoder-ABC323

AtCoder-ABC323A Weak Beats 依题意判断。 提交记录:Submission - AtCoder AtCoder-ABC323B Round-Robin Tournament 依题意排序。 提交记录:Submission - AtCoder AtCoder-ABC323C Wo ......
题解 AtCoder-ABC AtCoder ABC 323

AtCoder Beginner Contest 323 - A B C D

目录A - Weak BeatsB - Round-Robin TournamentC - World Tour Finals ABC323 A - Weak Beats 遍历判断偶数位的字符是否都是 '1' 即可 B - Round-Robin Tournament 统计每个人的胜场次数,再按照胜 ......
Beginner AtCoder Contest 323

AtCoder Beginner Contest 323

有的人边上课边打abc A - Weak Beats (abc323 A) 题目大意 给定一个\(01\)字符串,问偶数位(从\(1\)开始) 是否全为\(0\)。 解题思路 遍历判断即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; us ......
Beginner AtCoder Contest 323

AtCoder Beginner Contest 322

AtCoder Beginner Contest 322 推荐视频:AtCoder Beginner Contest 322 A 至 F 題讲解 by dreamoon A. First ABC 2 解题思路: 遍历寻找连续的\(ABC\). 时间复杂度:\(O(n)\). 代码: #include ......
Beginner AtCoder Contest 322

AtCoder Grand Contest 057 E RowCol/ColRow Sort

洛谷传送门 AtCoder 传送门 首先考虑一个经典的套路:转 \(01\)。具体而言,我们考虑若值域是 \([0, 1]\) 怎么做。 发现可以很容易地判定一个 \(A\) 是否合法。设矩阵第 \(i\) 行的和为 \(r_i\),第 \(j\) 列的和为 \(c_j\),那么合法当且仅当 \(A ......
AtCoder Contest ColRow RowCol Grand

【bitset】【线段树】CF633G Yash And Trees 题解

CF633G 简单题。 先看到子树加和子树质数个数和,果断转换为 dfs 序进行处理。 既然有区间求和,考虑线段树。 若对于每一个节点维护一个 \(cnt\) 数组,用二进制数 \(x\) 来表示,即当 \(cnt_i = 1\) 时第 \(i\) 位为 \(1\)。设当前节点为 \(u\),左右子 ......
线段 题解 bitset Trees 633G

【线段树合并】CF1805E There Should Be a Lot of Maximums 题解

CF1805E 待补:有另解 看到维护树上问题,可以想到线段树合并。 但直接维护显然不行,要一点技巧。 发现 \(val\) 的出现次数 \(cnt_{val}\) 如果 \(\ge 3\),那么一定是一个候选项,若 \(cnt_{val} = 1\),那么一定不能作为候选项。 于是可以用权值线段树 ......
线段 题解 Maximums Should 1805E

线段树合并 && 分裂

线段树合并 引入 线段树合并就是把两颗线段树合并起来。 比如: 线段树 \(a\) 维护 \([1,1,2,0,0,2]\)。 线段树 \(b\) 维护 \([0,0,2,5,1,2]\)。 合并后的线段树 \(c\) 所维护的序列就是 \([1,1,4,5,1,4]\)。 解决问题 目前我所见到的 ......
线段 amp
共1120篇  :10/38页 首页上一页10下一页尾页