集训队 线段 题解p10009

CSP-J2021试题题解

1.分糖果 原题:https://www.luogu.com.cn/problem/P7909 原代码: #include<bits/stdc++.h> #define ll long long using namespace std; ll n,l,r; int main(){ cin>>n>>l ......
题解 试题 CSP-J 2021 CSP

CF1781F题解

[$\text{link}$](https://www.luogu.com.cn/problem/CF1781F) 。也是一道非常巧妙的 $\texttt{dp}$ 。 容易想到把括号变成 $\pm 1$。考虑括号序列合法等价于前缀和 $\ge 0$,我们可以想加入 $()$ 或 $)($ 对前缀的 ......
题解 1781F 1781 CF

洛谷 P9248 - [集训队互测 2018] 完美的集合

显然,如果选择的 $k$ 个“合法集合”固定了,那么可以放置装置的点如果存在,那么必然形成一个连通块,也就是说,答案等于所有合法方案中,可以放置装置的点形成的连通块个数之和。而根据点减边的套路,这等价于,枚举每个点,计算有多少种方案满足可以在其放置装置,再枚举每条边,计算有多少种方案满足这条边两个端 ......
集训队 P9248 9248 2018

线段树学习笔记

让我们来一步一步理解! 1.向上更新 void push_up(int rt){//向上更新 sum[rt] = sum[rt << 1] + sum[rt << 1 | 1]; } 2.向下更新 void push_down(int rt, int m){ if(add[rt]){//若有标记,则 ......
线段 笔记

【P4331 [BalticOI 2004]】Sequence 数字序列 题解(左偏树维护动态区间中位数)

左偏树维护动态区间中位数。 [传送门 P4331 BalticOI 2004 Sequence 数字序列](https://www.luogu.com.cn/problem/P4331)。 ## Solution ### 1 我的思路和题解前半部分完全重合了(( 如果按照单调不增去分割 $a$ 序列 ......
中位数 题解 区间 序列 BalticOI

CSP-J2022山东补赛题解

1.植树节 原题:https://www.luogu.com.cn/problem/U285015 代码: #include<bits/stdc++.h> #define ll long long using namespace std; const int N = 1e6+255; int a[N ......
题解 CSP-J 2022 CSP

CSP-J2019试题题解

1.数字游戏 原题: https://www.luogu.com.cn/problem/P5660 代码: #include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ......
题解 试题 CSP-J 2019 CSP

线段树水题

[THUSCH2017] 大魔法师 ​ 给定 $n$ 个三元组 $(A,B,C)$ 。共有 $m$ 种区间操作,分为三大类,七小类。 1.$A_i=A_i+B_i$ 2.$B_i=B_i+C_i$ 3.$C_i=C_i+A_i$ 给定值 $v$ 4. $A_i=A_i+v$ 5. $B_i=B_i\ ......
线段

CF840E 题解

怪异题。 阈值分治。权值不超过 $2^{16}=65536$,于是把前后八位砍开。把每个点和上边 $256$ 个点分成一块,那么每块内的 $dis$ 的前八位是相同的,因此可以分开考虑。 前边 $8$ 位设一个 $f_{x,i}$ 表示跳了 $i$ 块跳到 $x$,这一块的前八位最大值。这个暴力把这 ......
题解 840E 840 CF

Codeforces Round 767 (Div. 1) E. Groceries in Meteor Town (Kruskal重构树 + 线段树)

传送门 ** 出现最大路径权值就应该联想到克鲁斯卡尔重构树,我们对于克鲁斯卡尔重构树求一遍dfs序,维护所有白色点的最大最小dfn(包括出发点),求出最大最小dfn的最近公共祖先既是答案。注意需要特判一下除了本身以外没有白色点情况。** #include <bits/stdc++.h> int n, ......
线段 Codeforces Groceries Kruskal Meteor

P5283 异或粽子 题解

题意: 给定一个长度为 $n$ 的整数数组 $a$,求 $a$ 中前 $k$ 大的异或区间和之和。 首先对 $a$ 处理一个异或前缀和数组 $s$,这样区间 $[l,r]$ 的异或和就转化成了 $s_{l-1} \oplus s_r$。题目就变为求 $n+1$ 个数(包含一个空前缀)两个数异或前 $ ......
题解 粽子 P5283 5283

交通运输(Wormhole Transportaion) 题解

传送门 交通运输(Wormhole Transportaion) 题目大意 有 $n$ 个点和 $m$ 个点对,你需要构造一张 $m-1$ 条边的无向图,使得 $m$ 个点对间最短路之和最小。 求最小值及取到最小值的方案数。 $2 \le n \le 2000,2 \le nm \le 2 \tim ......

YACS 2023年5月月赛 乙组 T1 升序排列(二) 题解

题目链接 一道诈骗题,英语课上一直在想然后想出来了( 正难则反,我们很难按照题目所说的得到最少步数,可以考虑从排好序的状态开始。 这样,每次就从首或尾中选择一个移到任意一个位置了,简单了些。 (因为我们只能移动首尾,当前移动到哪里最优貌似可以贪心) 所以下面令初始状态为有序的那个,目标状态为初始时给 ......
升序 乙组 题解 月月 YACS

可持续化线段树

可持续化线段树 前言: “这个数据结构是属于比较抽象的一类。并且代码实现比较繁琐复杂。” 别人都这么说,我却觉得挺好理解、也挺好写的(可能是因为我曾经与多道线段树毒瘤题抗争多次)。 为了避免以后我突然脑子抽了不记得了,可以拿出来看看。所以写下这篇笔记,希望也能帮到大家。 建议:带上一个清晰的脑子(草 ......
线段

素数判断题解报告

第一种方法:枚举 从素数的定义中,我们可以知道,一个整数m要被判断为素数,需要判断n是否能被2、3…n-1中的一个整除,只有2,3,…,n-1都不能整除n,n才能判定为素数,而只要有一个能整除n的数出现,n就可以判定为非素数。 #include<iostream> #include<cmath> u ......
素数 题解 报告

学习笔记:线段树

在已经掌握线段树的基本用法后的做题整理。给自己复习用的。 用 $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$ 次操作所乘的数(保证第 $ ......
线段

题解:独占访问2 Exclusive Access 2

题目链接 怎么唯一一篇题解这么抽象,完全看不懂。 给定一张无向图,求给这张图定向成 DAG 之后的最长路最短是多少。转化一下变成对 DAG 进行分层,每一层之间的点没有连边,使得层数尽可能少,那么最后的层数就是答案。 那么就求出若干个独立集,让独立集总数尽可能少。这是经典的色数问题,我们使用状压 D ......
题解 Exclusive Access

GYM102392 简要题解

自己下午闲着没事单挑了一下,两小时左右一度rk1,但后继无力了。。。。 A. Max or Min 肯定沿着出现过的数操作;然后发现如果a[i]=k,a[j]>k,a[k]<k就会增加一次操作 所以维护一下差分序列即可。 B. Level Up 两维DP,这个疑似edu出过。 要注意的是:需要关于x ......
题解 简要 102392 GYM

CF1825D1 题解

一、题目描述: 给定 $n$ 和 $k$,表示有 $n$ 个点,其中有 $k$ 个点是关键点,这 $k$ 个点随机分布。 给出 $n$ 个点的连接方式,保证构成一棵树,求有期望多少个点使得这个点到 $k$ 个关键点的距离之和最小,答案对 $1e9+7$ 取模。 数据范围:$1\leq n\leq 2 ......
题解 1825D 1825 CF D1

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

#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 ......
线段 数组

Luogu P5576 [CmdOI2019]口头禅 题解

upd: 修改了一些思路的表达,帮助理解。 首先膜拜 yyc 大佬出这样的~~毒瘤~~好题。另外感谢 永无岛、xtx1092515503、hs_black 提供的思路。这里整理了一下这些思路,可能会有所启发。 题意: 给定一个字符串构成的序列,多次查询给定区间内各字符串的最长公共子串长度。 提供一种 ......
题解 口头禅 口头 Luogu CmdOI

ABC262Ex Max Limited Sequence 题解

题意: 给定 $m$ 个限制 $(l_i,r_i,p_i)$ 及 $n,k$,求满足以下条件的长度为 $n$ 的不同序列 $a=(a_1,a_2,\cdots,a_n)$ 的数目。 $\forall i \in[1,n],0\leq a_i\leq k$ $\forall i \in[1,m],\m ......
题解 Sequence Limited ABC 262

ABC191F 题解

题目传送门 题目分析 我们发现,$\text{min}$ 操作实际上就是把两数当中较大的那个删除,较小的那个数不受影响,所以用最小的数删还是用另一个数删是无区别的。 一个性质: $$\gcd(x,y) \le \min(x,y)$$ 不管 $a_{min}$ 是原来的还是在 $\text{gcd}$ ......
题解 191F ABC 191

[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

P8714 题解

洛谷 P8714 题意 自己看( 思路 分五个小题去考虑。 问题 A 枚举门牌号,看门牌号中有多少个 $2$,统计答案即可。 void sloveA () { // 问题 A int sum = 0; for (int i = 1, j; i <= 2020; i++) { // 枚举门牌号 j = ......
题解 P8714 8714

CF1824B2 LuoTianyi and the Floating Islands题解

是 Div2 的 D1 和 D2。 题意 给定一棵 $n$ 个结点的树,现在有 $k(k\leq n)$ 个结点上有人。 一个结点是好的当且仅当这个点到所有人的距离之和最小。 求在这 $n$ 个点中随机取 $k$ 个点时,好的结点的期望个数,对 $10^9+7$ 取模。 Easy: $k\leq 3 ......
题解 LuoTianyi Floating Islands 1824B

# P4183 [USACO18JAN]Cow at Large P 题解

# P4183 [USACO18JAN]Cow at Large P ## 题意 贝茜被农民们逼进了一个偏僻的农场。农场可视为一棵有 $N$ 个结点的树,结点分别编号为 $1,2,\ldots, N$ 。每个叶子结点都是出入口。开始时,每个出入口都可以放一个农民(也可以不放)。每个时刻,贝茜和农民都 ......
题解 P4183 Large USACO 4183