12 2022 档案
摘要:解题思路 这道题目是需要维护各种连通块信息的,所以这里我们可以也用并查集维护。这题我们如果注意一点细节,也是可以让代码变得很简洁的: 这道题的输入自带状态压缩,如果一个数 ,那么这个数代表这个格子有西面的墙,东南北也是相似。 $\qqu
阅读全文
摘要:题目描述 给定长度为 的数列 ,以及 条指令,每条指令可能是以下两种之一: 1 x y,查询区间 中的最大连续子段和 2 x y,把 改成 。 对于每个查询指令,输出一个整数表示答案。 解题思路 区间问题首选线段树,那这题我们
阅读全文
摘要:题目描述 幼儿园里有 个小朋友,老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。 但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候, 老师需要满足小朋友们的 个要求。 幼儿园的糖果总是有限的,老师想知道他至少需要准
阅读全文
摘要:传送门 解题思路 我们一开始可以得出一个建图的思路,对于每个字符串我们把它们当成图中的一个点,然后能“接龙”的字符串之间连一条边,在这张图上跑 分数规划。这样貌似是可以的,但是我们看一下这张图有多么庞大:它的点数 的上限可以达到 ,而边数应该是$A_{N}^{2}
阅读全文
摘要:传送门 题目描述 给定一张 个点、 条边的有向图,每个点都有一个权值 ,每条边都有一个权值 。 求图中的一个环,使“环上各点的权值之和”除以“环上各边的权值之和”最大。 输出这个最大值。 注意:数据保证至少存在一个环。 输入格式 第一行包含两个整数 和
阅读全文
摘要:传送门 题目描述 有一个 行 列的点阵,相邻两点可以相连。 一条纵向的连线花费一个单位,一条横向的连线花费两个单位。 某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通。 解题思路 在输入的时候把已经有连线的点合并到同一个集合(通过并查集),为
阅读全文
摘要:传送门 题目描述 有 头奶牛,已知它们的身高为 且各不相同,但不知道每头奶牛的具体身高。 现在这 头奶牛站成一列,已知第 头牛前面有 头牛比它低,求每头奶牛的身高。 解题思路 我们对于这题可以从后向前扫描,当扫描到第i头牛的时
阅读全文
摘要:传送门 题目大意 给定一张无向图,没有重边和自环,要删去一些边但是仍然要保证图的连通性,求这些边边权总和的最大值。 解题思路 我们不一定要真的去统计它的最大值,因为所有边的权值总和是不变的,所以我们算出来保留的边的权值总和越小,删掉的边的权值总和越大。 $\qquad
阅读全文
摘要:题目描述 有 种物品和一个容量是 的背包。 物品一共有三类: 第一类物品只能用1次(01背包); 第二类物品可以用无限次(完全背包); 第三类物品最多只能用 次(多重背包); 每种体积是 ,价值是 。 求解将哪些物品装入背包,可使物品体积总和不超过背包
阅读全文
摘要:传送门 题目大意 给定长度为 的数列 ,然后输入 行操作指令。 第一类指令形如 C l r d,表示把数列中第 个数都加 。 第二类指令形如 Q x,表示询问数列中第 个数的值。 对于每个询问,输出一个整数表示答案。 解题思路 $\qquad
阅读全文
摘要:AcWing传送门 洛谷传送门 题目大意 给一个无向图,边权都是 ,求出以 为源点,到各个点( )的最短路数量 解题思路 边权都是 的图中最短路,我们选择用 解决这个问题 对于每个点 ,我们进行以下讨论:(假设这
阅读全文
摘要:题目传送门 解题思路 我们可以用一个状态压缩的思路,对于所有的钥匙,用来开第 类门的我们把这把钥匙放到从右往左数的第 位(这里是为了方便写,比如开第 种门的 ),这样我们在判断是否有钥匙的时候只要用到 >> $\ &
阅读全文
摘要:题目传送门 题目大意 有一张有向图,可以有若干个起点,只有一个终点,求所有起点到终点的最短路中最短的一条,若所有起点都与终点不连通,则输出 解题思路 我们这题可以想出两个方面的思路: 我们可以设置虚拟源点$S=0(这样编号不会与其他点冲
阅读全文
摘要:AcWing题目传送门 洛谷题目传送门 题目大意 一个投机倒把的奸商想要通过城市不太健全的贸易系统坑点钱,任意城市都可以买入或者卖出水晶球,他想尽量在便宜的城市买入,在贵的城市卖出,以此赚取更高的差价,他必须从一号城市开始旅行,到 号城市结束。请问他最多可以赚多少钱? 解题思路
阅读全文
摘要:AcWing题目 洛谷题目 解题思路 首先可以得到一个很容易得到的贪心策略,将一条路径上最贵的(边权最大)的 条边删去,那么我们剩下的路径中最贵(边权最大)的路就是原本这条路径上帝 大的路。 于是原问题就可以转化为: 求一张无向图中最大的一条路径中的第 大的边 这就启发我们枚
阅读全文
摘要:原题链接 解题思路 这题用 会被卡,所以我们不能用 但是观察数据我们可以发现对于道路, 所以对于每个连通块(内部不存在航线),我们可以用 算法进行求解,因为不存在负权边,而 算法的时间较为稳定,所以对于连通块内部的
阅读全文
摘要:原题Vjudge 题目大意 给你个 判断有没有两个整数满足 ,并且 的各位数字刚好构成 的一个排列 解题思路 这题乍一看挺难的,但是范围很小( ),那我们就可以着手写暴力 将上述等式进行变形,可以得到$A = N
阅读全文
摘要:原题Vjudge 题目大意 有一个骑士,他可以骑马日字型跳跃,问他从A点到B点最少要几步 解题思路 这题就是一个特别裸的广搜板子 它的主要问题在于输入输出 输入的数据我们可以用 读入,第一关键字存行(a~e),第二关键字存列(1 ~ 8) 然后我们为了方便处理,把行也映射成数组1 ~ 8
阅读全文
摘要:AcWing 洛谷 解题思路 这题看到最短跳跃距离尽可能长就会想到二分 但是我们二分的 函数怎么写呢 可以看到限制条件移走的石头最多只能是 块 我们二分这个最短距离 容易想到一个贪心策略:扫描一遍 数组,如果 ,( 是当前站的石
阅读全文
摘要:原题Vjudge 题目大意 给定一个字符串,字符串中可能含有 字符或者 字符 被 框起来的字符串将会被移到最开头,(如果之前有过 ,则越晚出现的 内字符串会被放在越前面,输出最后得到的字符串 解题思路 解法1 用一个类似循环链表的东西存储这个字符串, 代表的是光标的
阅读全文
摘要:原题Vjudge 题目大意 模拟矩阵链乘的计算,如果出现错误就输出error,否则输出总共的乘法次数 对于一个矩阵 乘法次数为 解题思路 这道题目就是经典的表达式模拟,对于一个矩阵的处理,我们可以用m
阅读全文
摘要:原题Vjudge 题目大意 给定一个入栈序列 ,判断出栈序列 是否合法 解题思路 这道题目我们可以用一个栈与双指针结合的算法 我们设立一个指针 ,一开始指向的是 ,也就是 的初始值为 然后我们把$1
阅读全文
摘要:原题链接 思路 从自己家开始,顺序任意,能去五个亲戚家,可以从亲戚家去到另外的亲戚家,于是这启发我们把每个亲戚和自己到全图其他点的最短路处理出来。 这乍一看是多源汇最短路,但是我们发现 算法是 的,在这题的条件下=根本跑不过 但是我们的源点有几个? 只有一个自己加上五个
阅读全文
摘要:原题链接 这道题目就是把01背包和并查集结合到一起而已,我们可以把一个集合内部的所有元素的信息统一到祖先节点上,再对所有的集合做01背包,把每个集合看成一个物品,然后物品价值是集合内所有物品价值和,物品体积是集合内所有物品体积和。 代码 #include <iostream> #include <c
阅读全文
摘要:题目描述 输入一个长度为 的整数序列。 接下来再输入 个询问,每个询问输入一对 。 对于每个询问,输出原序列中从第 个数到第 个数的和。 输入格式 第一行包含两个整数 和 。 第二行包含 个整数,表示整数数列。 接下来 行,每
阅读全文
摘要:题目描述 给定你一个长度为 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 。 第二行包含 个整数(所有整数均在 范围内),表示整个数列。 输出格式 输出共一
阅读全文
摘要:题目描述 给定一个长度为 的整数数列,以及一个整数 ,请用快速选择算法求出数列从小到大排序后的第 个数。 输入格式 第一行包含两个整数 和 。 第二行包含 个整数(所有整数均在 范围内),表示整数数列。 输出格式 输出一个整数,
阅读全文
摘要:AcWing 785.快速排序 ——梦开始的地方 题目描述 给定你一个长度为 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 。 第二行包含 个整数(所有整数均在 $1\ \sim\ 10^{9
阅读全文