集训队 线段 题解p10009

CSP-S R2 T4 种树题解

\(First\) -大意: 给定一颗以 \(1\) 为根有 \(n\) 个节点的树,可以在每个节点上种一颗高度为 \(0\) 的树,每天可以选择一个未种树且与某个已种树的节点通过一条边连接的节点种树,每个节点 \(i\) 的树种下后第 \(x\) 天( \(x\) 从整个任务的第一天开始计算)会成 ......
题解 CSP-S CSP R2 T4

luogu P1608 路径统计题解

update 2022.2.17 图炸了 update 2022.8.20 修改了一些错误 step 0 一些建议 做此题前建议先去做 P1144 最短路计数 并且建议使用 Dijkstra 算法去写,原因在 这个帖子 和 这个帖子 也感谢这位大佬的付出。 不然我就要拿SPFA写了。 step 1 ......
题解 路径 luogu P1608 1608

排队-题解

排队-题解 《排队》是一道很优美的贪心题(我不知道它的来源,估计其难度提高+/省选),曾被出在了计算概论B的考试中。本文的受众主要是学习计算概论的同学以及老师,不假定读者有信息竞赛(OI)经验。 题目描述 有 N 名同学从左到右排成一排,第 i 名同学的身高为 hi。现在张老师想改变排队的顺序,他能 ......
题解

LOJ #6040. 「雅礼集训 2017 Day5」矩阵

题面传送门 不会线性代数🤡!又被 ZJ 薄纱了! 首先我们考虑如果确定了 \(A\) 矩阵,怎么计算 \(B\) 矩阵的个数。 好像有点困难,不妨先考虑 \(C\) 全零的情况。考虑 \(B\) 的一列,将其设成未知数,则最后的答案就是形如 \(\sum A_{i,j}b_{j}=0\) 这样 \ ......
矩阵 6040 2017 Day5 LOJ

[ABC286G] Unique Walk 题解

洛谷题目链接 At题目链接 这题一看就很欧拉路径,但是怎么做呢? 如果只有关键边,那么连通图首先会变成一堆连通块,这时只需要分别对每个连通块进行欧拉路径判断,但是对于不属于欧拉路径的连通块,很难对加上非关键边的情况进行扩展。 如果只有非关键边,那么连通图还是变成一堆连通块,但是这些连通块全部都是合法 ......
题解 Unique 286G Walk ABC

题解 P4630 [APIO2018] 铁人两项

具体思路 题目问的是三元组 \((x,z,y)\) 使得 \(x\) 可以到达 \(z\),且 \(z\) 可以到达 \(y\),求三元组 \((x,z,y)\) 的数量。 我们转化一下问题,就是问 \(x,y\) 之间所有不重复路径的点的并集减 \(2\)。 显然,无向图中任意一个点都属于一个点双 ......
题解 铁人 P4630 4630 2018

[题解] P6773 [NOI2020] 命运

P6773 [NOI2020] 命运 给你一棵 \(n\) 个节点的树,要给每条边染成 \(0\) 或 \(1\)。 有 \(m\) 个限制 \((u, v)\) 满足 \(u\) 是 \(v\) 祖先,表示 \(u\) 到 \(v\) 的路径中至少有一条边被染成了 1。 求方案数。 \(n, m ......
题解 命运 P6773 6773 2020

Atcoder Beginner Contest 321 G - Electric Circuit 题解 - 状压dp | 指定最低位

为了更好的阅读体验,请点击这里 题目链接:G - Electric Circuit 看到了 \(N\) 的数据范围,因此是显然的状压 dp。 不妨设 \(f_S\) 为仅使用 \(S\) 集合中的所有点,能够连成恰好 \(1\) 个连通块的方案数。\(g_S\) 为仅使用 \(S\) 集合中的所有点 ......
题解 Beginner Electric Atcoder Contest

P9194 [USACO23OPEN] Triples of Cows P 题解

Description 给定一棵初始有 \(n\) 个点的树。 在第 \(i\) 天,这棵树的第 \(i\) 个点会被删除,所有与点 \(i\) 直接相连的点之间都会两两连上一条边。你需要在每次删点发生前,求出满足 \((a,b)\) 之间有边,\((b,c)\) 之间有边且 \(a\not=c\) ......
题解 Triples P9194 USACO 9194

wzOI 202311.8-9 模拟赛题解

2023.11.9 competion 复盘 时间安排不太好,然后就是太纠结于一个想法了导致第二题不知道在想什么鬼东西,心态还是要放平啊。 A 明显大模拟,我想逃避一下,所以就skip了半个小时,发现后面三道一点思路都没有,然后就回来打 T1 大模拟。这个大模拟非常考验对工具的使用,幸好我造的数据比 ......
模拟赛 题解 202311.8 202311 wzOI

[题解] P5901 [IOI2009] Regions

P5901 [IOI2009] Regions 给你一棵树,每个点有颜色 \(h_i\)。 多次询问,每次询问有多少对 \((u, v)\) 满足 \(u\) 是 \(v\) 的祖先且 \(u\) 的颜色是 \(r_1\) 且 \(v\) 的颜色是 \(r_2\)。 \(n, q \le 2 \ti ......
题解 Regions P5901 5901 2009

[题解] CFgym103069G Prof. Pang's sequence

G. Prof. Pang's sequence 给一个长度为 \(n\) 的序列 \(a\),多次询问区间 \([l, r]\) 内有多少个子区间的颜色数是奇数。 \(n, m \le 10^5\)。 先按照 HH 的项链 的套路,对于每个数记一下 \(lst_i\) 表示 \(a_i\) 上一次 ......
题解 sequence 103069G 103069 CFgym

[题解]CF938G Shortest Path Queries

Shortest Path Queries 给你一张无向连通图,支持三种操作: 插入一条边 \((u, v, w)\)。 删除一条边。 求 \((u, v)\) 之间的异或最短路。 \(n, m, 1 < 2^{30}\)。 先考虑异或最短路怎么求,这部分和 最大XOR和路径 是一样的。就是把图上的 ......
题解 Shortest Queries 938G Path

[国家集训队] 阿狸和桃子的游戏

# include <bits/stdc++.h> # define int long long using namespace std; const int N = 1e6 + 10; int n, m; int k[N], a, b, c; int val[N]; //如果一条边的两端点被同一个 ......
集训队 桃子 国家

[CSP-J 2021] 小熊的果篮 题解

题目链接 既然只有两种东西,我们不妨分开考虑,这里也借鉴了很多二分图题目的切入点。 假设苹果和桔子下标分别如下图所示: 苹果:1 3 6 7 9 10 桔子:2 4 5 8 那么第一次取,应该是这样取: 1 2 3 4 6 8 9 也就是先取开头比较小的,然后轮流取,注意一定保证递增,也就是对于苹果 ......
果篮 题解 CSP-J 2021 CSP

[题解]CFgym103470E Paimon Segment Tree

Paimon Segment Tree 区间加,求一段时间内的区间平方和。 \(n, m, q \le 5 \times 10^4\)。 对时间维差分一下,变成询问区间历史平方和。 离线下来扫描线,扫描线维护时间维,数据结构维护序列维。 考虑维护二元组 \((a, s)\) 表示当前位置值为 \(a ......
题解 103470E Segment 103470 Paimon

A2OJ Ladder 21 简要题解

https://earthshakira.github.io/a2oj-clientside/server/Ladder21.html 只记录 Difficulty level >= 8 的。有很多题是口胡的。写了的会标注提交记录。还有些很久以前写过的题就懒得搬提交记录了。 71. CF444E D ......
题解 简要 Ladder A2OJ 2OJ

题解:疯狂lcm

%你赛打到一半来写个题解 link:疯狂lcm 题意,求: \[\sum_{i=1}^{n}lcm(i,n) \]不多说废话,直接开推: \[\begin{aligned} &=n\sum_{i=1}^{n}\frac{i}{gcd(i,n)}\\ &=n\sum_{d\mid n}\sum_{i= ......
题解 lcm

【题解】CF1142E - Pink Floyd

CF1142E - Pink Floyd https://www.luogu.com.cn/problem/CF1142E 粉边构成 dag 的做法显然。 然后就是不构成 dag,那么我们可以枚举没有遍历到的点求一个 dfs 生成树,dfs 生成树的性质是删掉的边只会是返祖边,返祖边连接的两个点就不 ......
题解 1142E Floyd 1142 Pink

P5521 题解

一道比较不错的思维题。 对于树上的每一个节点,我们考虑设节点 \(i\) 要放 \(w_i\) 朵梅花,如果从梅岭带出 \(ans_i\) 朵梅花,就在节点 \(i\) 上放 \(w_i\) 朵梅花。 具体地,有以下两种情况: 第一种情况,梅花直接放所有子节点再放父节点。则易知 \(w_i+\sum ......
题解 P5521 5521

理解线段树和主席树:解决区间操作的利器

在计算机科学和算法领域,区间操作问题是一类常见且重要的问题,它们涉及到在一维数据结构中执行查询和更新操作。线段树和主席树是两种用于解决这类问题的强大数据结构。本文将介绍这两种树状数据结构,以及它们在不同应用领域中的使用。 什么是线段树? 线段树是一种用于处理区间操作问题的数据结构,它的核心思想是将一 ......
线段 区间 利器 主席

leetcode322题解

今天来解析一下一道中等的leetcode题,题目如下: 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例 1 ......
题解 leetcode 322

cf908(div2)题解(补题)

纪念这次div2让我上绿名,但还是有点遗憾,差一点就可以过三题超神了 比赛链接cf908div2 A 这题是个骗人题,整个比赛会停下来就是一个人赢够了回合数,那么在谁这停下来就是谁赢了整个比赛,不用管每回合赢得规则。 #include<iostream> using namespace std; # ......
题解 div2 908 div cf

原点到线段的垂足

原理: 1) 求出向量ao在ab上的投影距离 2) a沿着ab方向移动投影距离就是垂足点的位置 // 获得原点到直线ab的垂点 public static Vector2 GetPerpendicularToOrigin(Vector2 a, Vector2 b) { var ab = b - a; ......
线段 原点

P4069 题解

简要题意 给定一棵 \(n\) 个点的树,树有边权。 对每个点维护一个集合 \(S_u\),一开始集合均包含整数 \(123456789123456789\)。 设 \({\rm dis}_{a,b}\) 为树上两点 \(a\),\(b\) 的距离。 共 \(m\) 次操作,分为如下两种: s t ......
题解 P4069 4069

CF650D 题解

一、题目描述: 给你一个长度为 $n$ 的序列 $a_1\sim a_n$,$0 \le a_i \le 1\times 10^9$。 现在有 $m$ 次操作,第 $i$ 次操作将位置 $p_i$ 的数变为 $v_i$,$1\le v_i\le 1\times 10^9$。 操作仅对本次有效,并不会 ......
题解 650D 650 CF

『题解』CF213E - Two Permutations

Luogu CodeForces 首先数据范围是 \(2\mathrm{e}5\),支持枚举,问题留给了判断子序列。不简单想到了哈希,一开始想到的是树状数组,发现树状数组比较菜,就转向了线段树。 一开始先把 \(b\) 中的 \(1\sim n\) 加到线段树里,然后不断的删除最小的,加入最大的,这 ......
题解 Permutations 213E 213 Two

## [HNOI2010] 取石头游戏题解

[HNOI2010] 取石头游戏 前言: 个人感觉这道题很有难度,很有思维,这种博弈方式也值得积累。 正文: 确定博弈:首先你得知道,很多博弈题目都是假的,可能是贪心啊什么的。这道题看起来是两个人都想要自己的得分更大,但是实际上为了让自己得分更大,就必须让对方在对方的回合中取的少一些。因此这肯定是博 ......
题解 石头 HNOI 2010

P2146 [NOI2015] 软件包管理器 题解

[NOI2015] 软件包管理器 题目背景 Linux 用户和 OSX 用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debia ......
题解 软件包 P2146 软件 2146

线段树历史值

P6242 【模板】线段树 3 支持区间加,区间取 \(\min\),区间求和,区间 \(\max\),区间历史 \(\max\)。 先提一嘴吉司机。 就是对线段树的每个节点记录最大值,严格次大值和最大值个数,只在 \(se<v<mx\) 的区间操作,否则向下递归。如果没有区间加,复杂度势能分析是 ......
线段 历史