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

浙公网安备 33010602011771号