集训队 线段 题解p10009

13、线段树

线段树:基于 Merger 接口的 merge(E a, E b) 方法 tree[treeIndex] 代表 data[l ... r] 的融合结果 public interface Merger<E> { E merge(E a, E b); } public class SegmentTree ......
线段

线段树分治

线段树分治 线段树分治,解决的是这样一类问题:有一个时间轴,有一些操作,这些操作在时间轴上每一个的作用范围是一个区间;在某些时间或者全局询问一些关于操作效果的问题。 它的重要效果是:一是可以把所有删除操作改成撤回操作(也就是撤回当前最近一个操作,而不是删除之前随便一个操作),可以和加入做到同时间复杂 ......
线段

【CF1797C 题解】

题意 这是一道交互题。 定义一个位置 $(x, y)$,移动一步后的位置为 $(x\pm1,y\pm1)$。 你需要找到一个位置 $(x, y)$。 你至多进行 $3$ 次询问,每次询问格式为 ? a b。 交互库会返回 $(x, y)\to (a, b)$ 的最小移动步数。 题解 还是比较有趣的一 ......
题解 1797C 1797 CF

hdu-4533(线段树+区间合并)

约会安排 HDU - 4553 跟hdu-1540(线段树+区间合并) - 魏老6 - 博客园 (cnblogs.com)是一样,但是要写两个线段树。 线段树维护,最长前缀pre,最长后缀suf,以及最大连续连续区间sum。 1代表空,0代表时间被占了 还有几个注意事项: 当是DS时,只能查询和修改 ......
线段 区间 4533 hdu

CF1525F 题解

题意 有一个 $n$ 个点的 DAG,现在有 $k$ 波进攻,第 $i$ 波有 $i$ 个人,它们每个人会选择一条 DAG 上的路径,并占领这个路径上的所有点,路径之间是不能相交的。第 $i$ 波进攻前可以做一些准备,可以花 $1$ 秒关闭某个点的所有入边,或关闭某个点的所有出边。第 $i$ 波进攻 ......
题解 1525F 1525 CF

线段树相关

一、前言 二、扫描线 就是维护矩形的面积/周长并。 1.面积并 用一条线从下往上扫,将所有矩形变成一片一片的 ( 感性理解 ) ,容易知道最多 2*n-1 片,每片的贡献是 当前线段总长度*这片的厚度。 最多 2*n 条竖直的线,所以最多 2*n 个端点,最多 2*n-1 个区间。 离散化后计算出不 ......
线段

P9203 时效「月岩笠的诅咒」 题解

题目传送门 题目大意 判断每次经过以下操作其一后,$a$ 与 $b$ 是否相等: 将 $a$ 加上 $1$,即 $a\gets a+1$; 将 $b$ 加上 $1$,即 $b\gets b+1$。 解题思路 $a$ 和 $b$ 都是每次加 $1$,所以如果它们相等,那它们的小数部分应该是相等的,所以 ......
月岩 题解 时效 P9203 9203

【笔记】线段树优化建图

正常情况下,我们给两个点连m条边,时间复杂度为$O(m)$ 当一个点给长度为n的区间内的每个点连m条边时,时间复杂度就变成了$O(n*m)$ 当一个长度为n的区间内的每个点向另一个长度为n的区间内的每个点连m条边时,时间复杂度就变成了$O(n^2 *m^2)$ 显然,这样连边效率很低,这时候就可以使 ......
线段 笔记

CF486D 题解

题目传送门 题目分析 不算很难的树形 $\text{dp}$。 令 $dp_i$ 表示以 $i$ 为根的子树中联通子图的个数。 在更新的时候,考虑儿子的联通子图和自己的,则有: $$dp_u = dp_u \times (dp_v + 1)$$ 选根的时候将 $a$ 最大的作为根节点。还要注意另外一 ......
题解 486D 486 CF

2023第14届蓝桥杯C/C++A组参赛记录+部分题解

比赛记录 早上起得还算早,没吃早餐,我吃早餐会瞌睡,也会变蠢。 在门口还没来得及和队里其他同学聊几句就进场了...... 键盘还是一样的难用,软件有codeblocks和dev,很舒服。 今年来参加蓝桥杯的人好多啊......女生也好多。 听说今年蓝桥杯有统一的正经培训,不过和我这个被踢出蓝桥杯群的 ......
蓝桥 题解 部分 2023

“科大国创杯”2023 年安徽省青少年信息学科普日活动 简要题解

老年退役选手感受单调队列力量。初中组没有实现,如果有问题欢迎爆 d 我。小学组T1 grade直接累加即可。不需要按百分比算(也就是别 /100),那样可能会出现一些浮点数误差。T2 order暴力枚举 $t$ 就可以了T3 string答案即为 $cnt4+cnt5-cnt20$。注意到对于一个数 ......
题解 简要 科普 青少年 信息

[省选联考 2023] 染色数组 题解

题目描述 给定一个长度为 $n$ 的正整数数组 $A$,其中每个数都在 $1$ 到 $m$ 之间,从左到右排成一排。现在要将每个数字染成红色或者绿色,我们定义一个染色方案为优秀的染色方案,当且仅当它满足: 每个数 $A_{i}$ 要么被染成红色,要么被染成绿色。 红色的数从左到右依次严格递增,绿色的 ......
题解 数组 2023

[省选联考 2023] 染色数组 题解

题目描述 给定一个长度为 $n$ 的正整数数组 $A$,其中每个数都在 $1$ 到 $m$ 之间,从左到右排成一排。现在要将每个数字染成红色或者绿色,我们定义一个染色方案为优秀的染色方案,当且仅当它满足: 每个数 $A_{i}$ 要么被染成红色,要么被染成绿色。 红色的数从左到右依次严格递增,绿色的 ......
题解 数组 2023

P2824 [HEOI2016/TJOI2016]排序 题解

题目传送门 前言 线段树好题!!!! 咕咕了挺久的一道题目,很早之前就想写了,今天终于找了个时间A掉了。 题意 给定一个 $1$ 到 $n$ 的排列,有 $m$ 次操作,分两种类型。 1.0 l r表示将下标在 $[l, r]$ 区间中的数升序排序。 2.1 l r表示将下标在 $[l, r]$ 区 ......
题解 2016 P2824 2824 HEOI

Codeforces 847 Div3 题解A-G

Codeforces 847 Div3 题解A-G 好久不打了,这几周忙着写各种作业,然后发现代码力跟不上了。今天复健一下吧。反正也是比较碎片的时间,马上新的作业就会被布置下来,n久没打了就来看下。所以这次先捡div3复键一下,之后暑假等实习了到时候得认真上上div2,不然秋招g咯。 A. Poly ......
题解 Codeforces Div3 847 A-G

Codeforces Round 864 (Div. 2) 中文题解

Codeforces Round 864 (Div. 2) 中文题解 A. 李华与迷宫 在 $(x_1,y_1)$ 或 $(x_2,y_2)$ 周围放障碍,更优的那个就是答案。换句话说,定义: $$ f(x,y)= \begin{cases} 2,&(x,y)\text{在角上}\ 3,&(x,y) ......
题解 Codeforces Round 864 Div

线段树历史区间最值

前情提要 本来是想去打可持久化线段树的,然后发现线段树还有一个类型,就先去打这个了,没想到一打就是一周啊QAQ。 P6242 【模板】线段树 3 1 l r k:对于所有的 $i\in[l,r]$,将 $A_i$ 加上 $k$($k$ 可以为负数)。 2 l r v:对于所有的 $i\in[l,r] ......
线段 区间 历史

可持久化线段树(主席树)

代码 #include<bits/stdc++.h> using namespace std; const int N=4e7+10; int n,m,t,top,rt,mode,x,y; int f[N],a[N],root[N]; struct kkk{ int l,r,val; }tree[N ......
线段 主席

SYUCTACM2023 bfs训练题解

迷宫 #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; const int mod = 1e9 + 7; char s[105][105]; int vis[105][105]; int dx[4] = {1, ......
题解 SYUCTACM 2023 bfs

Mondriaan's Dream 【POJ2411】 题解

Mondriaan's Dream 【POJ2411】 题解 ——By Zy 注:原题中的 $h,w$ 在本文中使用 $n, m$ 代替。 一. 题意分析: 题目要求给定一个一定大小的 矩形 棋盘,求出使用 $1\times 2$ 大小的木条填充一共有多少种方案。 读题,发现数据范围 $(1\le ......
题解 Mondriaan Dream 2411 POJ

poj-3367(线段树+区间合并)

Hotel POJ - 3667 思路:与hdu-1540(线段树+区间合并) - 魏老6 - 博客园 (cnblogs.com)类似,只不过是区间修改,多维护一个最大连续区间sum。 #define _CRT_SECURE_NO_WARNINGS 1 #include<algorithm> #in ......
线段 区间 3367 poj

ARC130D ZigZag Tree 题解

题目链接 考虑这棵树在满足条件下是什么样子的? 我们发现如果对于一棵树黑白染色,白色表示周围的点大于自身,黑色的点反之,是满足条件的。同时,将黑白点反色也是满足条件的。 我们考虑进行 $\text{dp}$ ,设 $dp_{i,j,0/1}$ 表示以点 $i$ 为根的子树,$i$ 点权值的排名是 $ ......
题解 ZigZag 130D Tree ARC

【牛客小白月赛70】A-F题解【小d和超级泡泡堂】【小d和孤独的区间】【小d的博弈】【小d和送外卖】

比赛传送门:https://ac.nowcoder.com/acm/contest/53366 难度适中。 🎈 作者:Eriktse 🎈 简介:19岁,211计算机在读,现役ACM银牌选手🏆力争以通俗易懂的方式讲解算法!❤️欢迎关注我,一起交流C++/Python算法。(优质好文持续更新中…… ......
题解 泡泡堂 区间 泡泡 A-F

Edu Round 板刷计划 4. Educational Codeforces Round 4 题解

Change Log: 2023.04.06 开坑. A - The Text Splitting 弱智题. 枚举分出来多少个长度为 $p$ 的串,则能计算出长度为 $q$ 的串有多少个,若合法则直接输出即可. 无解输出 -1. Sample submission. B - HDD is Outda ......
板刷 题解 Round Educational Codeforces

【题解】P4898 [IOI2018] seats 排座位

思路 线段树。 题意可以转化成每次判定有多少个前缀满足所有结点构成矩形。 首先排除确定矩阵坐标再数答案的做法,因为太难。 所以考虑如何对前缀进行判定。 一个简单的想法是维护前 $i$ 个点中 $x, y$ 坐标的最值,但这样只能暴力看矩阵中的所有元素,跑得很慢。 不妨思考一下合法的条件: 前 $i$ ......
题解 座位 P4898 seats 4898

[ARC127D] Sum of Min of Xor 题解

先把 $i$ 对 $j$ 的约束去掉。没有 $\min$ 的情况是 trival 的,发现瓶颈在于如何比较两个数之间的大小。 可以发现,对两个二进制数,我们本质上是想要找到它们第一个不同的位置。于是考虑从最高位开始,将 $(a_i,b_i)$ 按最高位分组为 $(0,0),(0,1),(1,0),( ......
题解 127D of ARC 127

【题解】CF472G Design Tutorial: Increase the Constraints

《正解分块 + FFT 跑 1min,__builtin_popcount 暴力跑 10s》 《没人写正解,CF 也不卡》 思路 正解:分块 + FFT 乱搞:__builtin_popcount 首先我们知道哈明距离可以用一种 $O(|字符集| |S|)$ 的算法求。 具体考虑枚举字符集中的每一个 ......
题解 Constraints Tutorial Increase Design

【题解】臭气弹

用次数乘上 $P/Q$ 来构建增广矩阵,进行高斯消元。在算出每个点被摧毁的概率与所有点的期望出现次数。 由于每个点爆炸概率相同,所以每个点被摧毁的概率就是这个点的期望出现次数 $/$ 所有点的期望出现次数。 #include<bits/stdc++.h> using namespace std; c ......
题解 臭气

hdu-1540(线段树+区间合并)

Tunnel Warfare HDU - 1540 思路: 没被摧毁的村庄为1,否则为0,用len记录 线段树维护区间的两个信息: 前缀最长1的序列pre 后缀最长1的序列suf 父节点与左右子节点的关系: //lc为左节点,rc为右节点 1.若左右结点都不满1,则tr[p].pre = tr[lc ......
线段 区间 1540 hdu

[蓝桥杯 2021 国 AB] 翻转括号序列(线段树上二分)

[蓝桥杯 2021 国 AB] 翻转括号序列 题目描述 给定一个长度为 $n$ 的括号序列,要求支持两种操作: 将 $\left[L_{i}, R_{i}\right]$ 区间内(序列中的第 $L_{i}$ 个字符到第 $R_{i}$ 个字符)的括号全部翻转(左括号变成右括号,右括号变成左括号)。 ......
蓝桥 线段 括号 序列 2021