集训队 线段 题解p10009

P5451 [THUPC2018] 密码学第三次小作业 题解

P5451 [THUPC2018] 密码学第三次小作业 题解 已知 \((e_1, e_2) = 1\)。 \[\begin{matrix}c_1=m^{e_1}\bmod N\\c_2=m^{e_2}\bmod N\end{matrix} \]现在,已知 \(c_1\) ,\(c_2\),\(e_ ......
密码学 题解 密码 P5451 THUPC

P8543 「Wdoi-2」纯粹的复仇女神 题解

自己的套路还是见少了。 思路 考虑扫描线。 每一个颜色的 \(\min\) 具有单调性,这个很好看出来。 可以使用一个单调栈来维护。 这里都是朴素的。 考虑如何维护。 我们发现在通过单调栈维护的时候。 需要支持撤销上一个元素对区间的影响。 我就在这里卡了很久。 我们有一个很暴力的想法。 我们每一次区 ......
复仇女神 题解 女神 P8543 8543

P9058 [Ynoi2004] rpmtdq 题解

支配点对实在是太有意思了。 本质上就是一个合法的减枝。 思路 考虑维护树上路径问题。 容易想到点分治。 考虑在当前的分治中心 \(\text{rt}\),每个点到当前分治中心的距离为 \(dp_x\)。 求出每一组点对的贡献。 假设每个点对在距离长的那部分贡献,即 \(dp_i>dp_j\),求出所 ......
题解 rpmtdq P9058 9058 2004

算法学习笔记(43): 可持久化线段树 - 区间加!

可持久化线段树 也叫做主席树,单点修改时简单,使用空间 \(O(\log n)\),问题在于如何区间加。 区间覆盖可以做,但是似乎只能单点查? 所以我们需要引入标记永久化的概念。 一个标记在没有下放前会放在 \(O(\log n)\) 个点上,这覆盖了整个操作区间。 一般来说我们会 update 更 ......
线段 区间 算法 笔记 43

P1002题解

思路 设 \(dp_{i,j}\) 表示第 \(i\) 行 \(j\) 列卒走到这里有多少种方式。 卒是可以向右和下走,所以到这个点只能从左或上来,不难得出转移公式:\(dp_{i,j} = dp_{i-1,j}+dp_{i,j-1}\)。 如果马在这个点上或者说马能到这个点上,那么卒不能到这个点, ......
题解 P1002 1002

P1003题解

简单模拟题。 思路 枚举每一个地毯,因为后面的会覆盖前面的,所以从正序枚举。如果要求的点的坐标在当前地毯上,则将答案赋值为当前地毯编号。 最后输出答案。 那如果这个点没有地毯呢?答案初始设为 \(-1\),这样没有地毯覆盖的话,答案不会改变,这样输出答案就会是 \(-1\)。 注意: 记得赋初始值。 ......
题解 P1003 1003

P1135题解

思路 我写的好像是动规的做法。 设 \(f_{i,j}\) 表示第 \(i\) 步 \(j\) 个点是否可以走到,值要么为 \(1\),要么为 \(0\)。最多走 \(n\) 步,因为总共只有 \(n\) 个点,每一步都肯定会多延伸出一个点,要不然就重复计算。 不难得出转移公式: \(f_{i+1, ......
题解 P1135 1135

SP9199题解

考察了小学奥数知识,不会的请先去学习一下相遇与追及。 思路 两个人相遇的点一定是有周期性的,我们可以先算出一个周期会走多远,而这个距离是两人速度的最小公倍数。 接着需分情况讨论。 如果两人是同向,则为追及,需用距离除以一人的速度减去距离除以另一人的速度。需要取绝对值。 如果两人是反向,则为相遇,需用 ......
题解 9199 SP

线段树优化建图

CF786B 题意: 定义 \((u,v,w)\) 表示 \(u\) 向 \(v\) 连了边权为 \(w\) 的边。 有三种连边操作 \((u,v,w)\) \(\forall i\in [l,r],(u,i,w)\) \(\forall i\in [l,r],(i,u,w)\) 求最短路。 暴力加 ......
线段

P5163 WD与地图 题解

来一发分治题解吧。 感觉和单纯的整体二分还是有一点区别。 虽然整体二分也能看作分治就是了。 思路 首先时光倒流。 删边改为加边。 这没有什么好说的,比较基础。 我们考虑在不断加边时,每两个点是在什么时候变成一个强连通分量里面的。 考虑分治。 首先在 \([l,r]\) 内选取中点 \(\text{m ......
题解 地图 P5163 5163

2023暑假信友队集训游记

信友队集训游记 漫长的信友队集训营 团队:提高1班 这是我们的同学洛谷号: 任子杭老师:_xuefeng 徐驭凡:Saint_ying_xtf 洪淇:2011qiqi 冯思哲:fsz171411 许禄海:xuluhai123 王小鲁:Littlelu 孙轩宇:孙轩宇 sunxuanyu 陈国栋:AK ......
游记 2023

[ABC328C] Consecutive 题解

给一个长度为 \(n\) 的字符串 \(s\),\(q\) 次询问,每一次 \(l\) 和 \(r\) 区间内有多少个 \(s_i\) 等于 \(s_{i-1}\)。 \(10^5\) 的数据 \(O(N^2)\) 暴力肯定行不通。于是我们考虑预处理前缀和,处理到 \(i\) 下标以及之前有多少个 ......
题解 Consecutive 328C ABC 328

[ABC329C] Count xxx 题解

插曲 因为本人看错了题面,买看到一个子串只包含一种字母,所以切完 D 和 E 才回来发现很简单。 问题翻译 给你一个长度为 \(N\) 的字符串 \(S\),由小写英文字母组成。 求 \(S\) 的非空子串中有多少个是一个字符的重复。在这里,作为字符串的两个子串是相等的,即使它们是以不同的方式得到的 ......
题解 Count 329C ABC 329

[ABC329D] Election Quick Report 题解

题目翻译 有一场选举,要从 \(N\) 名候选人中选出一名获胜者,候选人编号为 \(1, 2, \ldots, N\),共有 \(M\) 张选票。 每张选票正好投给一位候选人,其中 \(i\) 票投给了候选人 \(A_i\)。 选票将按照从第一张到最后一张的顺序进行统计,每张选票统计完毕后,将更新并 ......
题解 Election Report Quick 329D

AT_abc329_e [ABC329E] Stamp 题解

题目翻译 给你两个字符串:\(S\) 由大写英文字母组成,长度为 \(N\);\(T\) 也由大写英文字母组成,长度为 \(M\),小于 \(N\)。有一个长度为 \(N\) 的字符串 \(X\),它只由 # 字符组成。请判断是否有可能通过执行以下任意次数的操作使 \(X\) 与 \(S\) 匹配: ......
题解 329 AT_abc Stamp 329E

[ABC328D] Take ABC 题解

题目大意: 给你一个字符串 \(s\)。你要在其中找到多少个 ABC 的子串,例如 AABCBC 算两个,删掉中间的 ABC 后,前面的和后面的加起来也是一个 ABC,所以就算两个。 思路分析: 首先很容易写出暴力,把一个 ABC 提取出来后把后面的元素往前移,然后再重复操作,但是我们发现时间复杂度 ......
题解 ABC 328D Take 328

[ABC327D] Good Tuple Problem 题解

分析: 这一道题很容易发现可以用并查集来维护 (不知道为什么其他人都用了图论),\(a_i\) 与其对应的 \(b_i\) 代表着 \(a_i\) 这个集合里不能存在着 \(b_i\)。 根据只有存在两个集合,所以我们会发现,若 \(x\) 与 \(y\) 不在一个集合且 \(x\) 与 \(z\) ......
题解 Problem Tuple 327D Good

AT_abc324_e [ABC324E] Joint Two Strings 题解

题目大意 给你 \(n\) 个字符串 \(s\),和一个字符串 \(t\)。 问你,有多少组是 \(s_j\) 拼在 \(s_i\) 后面所组成的新字符串中,\(t\) 是其子序列。 思路 分析:\(5 \times 10^5\) 的数据肯定需要 \(O(n)\) 或 \(O(n \log n)\) ......
题解 324 Strings AT_abc Joint

洛谷 P4872 OIer们的东方梦 题解

前言 一个下午,一个晚上,一个早上,可以算是一天了吧,终于调出了这道题,纪念一下吧!!! 食用更佳。 这道题其实就是一道简简单单的 BFS 模(du)板(liu)题。 说难不难,简单不简单,虽然没有难的算法,但是就是码量一百多行,比较难调。 题目难度绿,思维难度橙,代码难度蓝。真是个绝世好题。 题目 ......
题解 P4872 4872 OIer

洛谷 P6239 [JXOI2012] 奇怪的道路 题解

P6239 [JXOI2012] 奇怪的道路 首先,拿到题面,\(n \le 30\),\(k \le 8\),这不就暴搜吗。再想想,紫题会给你暴搜的机会吗?所以进一步思考,发现这其实是一道 DP,而且数据这么小,肯定是给状压 DP 的样子。 经过一定思考,发现我们可以直接线性枚举 \([1,n]\ ......
题解 道路 P6239 6239 2012

洛谷P3161 [CQOI2012] 模拟工厂题解

P3161[CQOI2012]模拟工厂题解。题目 其实发现这是一道状压,发现这道题是一道数学题,其实就很简单了。对于每一次的订单我们可以设: \(time\) 为距离下一个订单的时间。 \(num\) 为这个订单要生产的数量。 \(x\) 为生产能力。 \(y\) 的时间可以用来提高工厂的生产力。那 ......
题解 工厂 P3161 3161 2012

2023.7信友队暑假集训第2次测试复盘

信友队暑假集训第2次测试总结: 本次比赛都出的以前做过的题,但本蒟蒻确只写了320(悲 第一题:排行榜 一道水题,秒A #include <bits/stdc++.h> using namespace std; string ans[105],s[105],t[105]; int vis[105]; ......
2023.7 2023

[ARC117E] Zero-Sum Ranges 2题解

题解 前言 个人认为官方题解写得最为详细、干净、清楚,如果有意向阅读外文版的题解的话,还是推荐去读一读: Editorial - AtCoder Regular Contest 117 本文属于转载(?),有一些自己的思考过程,希望有帮助。 题意 有多少个长度为 \(2N\) 的序列 \(A\) 满 ......
题解 Zero-Sum Ranges 117E Zero

P9779_[HUSTFC 2023] 不定项选择题_题解

# [rt](https://www.luogu.com.cn/problem/P9779)# 题目##### 有一道共 n 个选项的不定项选择题,它的答案至少包含一个选项,由于题目与选项的内容晦涩难懂,你打算通过尝试每一种可能的答案来通过这道题。##### 初始时所有选项都没有被勾选,你可以执行任 ......
题解 选择题 HUSTFC 9779 2023

【题解 P2839】 middle

[国家集训队] middle 题目描述 一个长度为 \(n\) 的序列 \(a\),设其排过序之后为 \(b\),其中位数定义为 \(b_{n/2}\),其中 \(a,b\) 从 \(0\) 开始标号,除法下取整。 给你一个长度为 \(n\) 的序列 \(s\)。 回答 \(Q\) 个这样的询问:\ ......
题解 middle P2839 2839

P8737 题解

定义 \(path(x,y,z)\) 表示 从 \((0,0,0)\) 走到 \((x,y,z)\) 的方案数。 显然的经过容斥得到,若 \(r1\le r2,c1\le c2,h1\le h2\),则 \(ans=path(n,m,w)-path(r1,c1,h1)\times path(n-r1 ......
题解 P8737 8737

CF1864D 题解

我们注意到对如图倒三角形上的所有点操作都会影响到目标点。 那么我们可以维护两个前缀和,第一个前缀和表示如下的点是否操作 第二个前缀和表示这些点是否操作 这样我们求出了前缀和之后,将两个前缀和异或一下就知道该点是否要操作了。 #include<bits/stdc++.h> using namespac ......
题解 1864D 1864 CF

P6326 Shopping 题解

非常好题目。 思路 考虑题目需要求一个连通块的背包。 点分治是平凡的,很容易想到,因为要统计的东西恰好可以把树分成几段。 但点分治操作时的背包确实卡了一下。 以前也没有见过这样的做法。 我们考虑如果直接做树上背包的话。 复杂度是绝对受不了的。 因为合并两个多重背包是基于值域的。 无法体现在树上的优势 ......
题解 Shopping P6326 6326

交点 - 求两线段交点2

效果 会用到的知识 相交 - 两线段是否相交 - yanghui01 - 博客园 (cnblogs.com) 线性代数 - 已知点求直线方程 - yanghui01 - 博客园 (cnblogs.com) 交点 - 两直线交点 - yanghui01 - 博客园 (cnblogs.com) //两线 ......
交点 线段

「线段树」笔记

基础 建树 void build(int p, int l, int r) { t[p] = (tree){l, r, 0}; if (l == r) { t[p].sum = val[l]; return; } int mid = (l + r) >> 1; build(lp, l, mid); ......
线段 笔记