随笔分类 - 题解
摘要:题意 一个终端是一排 $n$ 个连接在一起的相等的线段,有两个终端,一上一下。 有一个数组 $a_i$,代表从上面的终端中第 $i$ 条线段,到下面的终端中第 $a_i$ 条线段,有一条连线。 问这些连线最多有几个交点。 思路 考虑何时两条连线会有交点。 观察样例不难得到,若 $i<j$ 且 $a_
阅读全文
摘要:题意 给定一棵树,点有黑白之分。 问这棵树有多少个黑白结点数量相同的子树。 思路 令以 $x$ 为根的子树中黑白结点的个数分别为 $s[x][0/1]$。 则 $s[x][0]=\sum s[v][0]+(x\ \text{is black})$,$s[x][1]=\sum s[v][1]+(x\
阅读全文
摘要:题意 给你一个长度为 $n$ 的序列 $a$ 和一个整数 $k$,你要求一个区间 $[l,r]$ 满足: 对于任何整数 $x∈[l,r]$,$x$ 在 $a$ 中的出现次数不少于 $k$ 次。 最大化 $r-l$。 无解输出 -1。 思路 看到出现次数,先把 $a$ 装进桶 $c$ 里, 发现装不进
阅读全文
摘要:题意 有 $n$ 个数,第 $i$ 个数是 $a_i$,$q$ 次询问, 每次询问最少选出几个数,使得它们的和不小于 $x$。 思路 很明显,应该先选较大的数,可以保证数的个数最小。 但直接模拟复杂度是 $O(nq)$,不太行。 假设 $a_i$ 已经降序排序,则选出的数应该是 $a$ 的一个前缀。
阅读全文
摘要:题意 有一个 $n×m$ 的国际象棋盘 $a$,$(i,j)$ 上有一个非负整数 $a_{ij}$。 你要在上面放一个象,问它能攻击到的点上的非负整数和最大是多少。 (象走斜线,无距离限制) 思路 直接模拟复杂度达到 $O(n^3)$,不太行。 考虑预处理出每条斜线上的点上的非负整数和。 观察得到,
阅读全文
摘要:题意 定义长度为 $n$ 的字符串 $a,b$ 的差异度为 $\sum\limits_{i=1}^n|a_i-b_i|$, $|a_i-b_i|$ 表示 $a_i$ 与 $b_i$ 在字母表上的距离, 给你 $n$ 个字符串,让你找一对字符串 $a,b$ 使得它们的差异度最小,输出这个最小值。 思路
阅读全文
摘要:题意 有 $n$ 盒糖,第 $i$ 盒糖中有 $a_i$ 颗糖。 你现在可以吃掉一些糖,使得每盒糖中剩余的糖数相等。 问你最少需要吃掉几颗糖。 思路 可以看出,设 $m=\min\limits_{i=1}^n a_i$,则最后每盒糖中剩余的糖数一定不大于 $m$。 所以把每盒糖都吃到剩下 $m$ 颗
阅读全文
摘要:题意 给你 $n$ 个六位数,对于每一个六位数,问它的 前三位之和 与 后三位之和 是否相等。 这 $n$ 个六位数中,可能存在一些六位数带前导零。 思路 模拟即可,可以把每个六位数单字符读入, 判断读到的 前三个数字之和 与 后三个数字之和 是否相等。 int g() //读入一位数字 { cha
阅读全文
摘要:题意 给你两个 $0,1$ 序列 $a,b$,你要把 $a$ 变成 $b$。 你可以翻转任意 $a_i$,之后把 $a$ 任意排列。 问最少翻转几个 $a_i$。 思路 可以看出,一个 $0,1$ 序列无论怎么排列,$0,1$ 的个数都不变。 所以,翻转任意 $a_i$ 之后, $a,b$ 中 $1
阅读全文
摘要:题意 有 $n$ 种香肠,对于每种香肠,给定 $X,Y$,表示 $Y$ 克这种香肠值 $X$ 元。 同时还有一种 $NSC$ 香肠,也给定 $X,Y$,表示 $Y$ 克 $NSC$ 香肠值 $X$ 元。 要买 $1000$ 克香肠,问这 $n+1$ 种香肠中,最便宜的那一种需要多少钱? 思路 我们知
阅读全文
摘要:发个严谨点的证明罢。 引理 $$ x|y≤x+y $$ 先搞个真值表出来: $a$ $b$ $a\vert b$ $a+b$ 1 1 1 2 1 0 1 1 0 1 1 1 0 0 0 0 可以看出,对于任意二进制位 $a,b$,$a|b≤a+b$。 设 $x$ 的第 $k$ 个二进制位为 $x_k
阅读全文
摘要:我来发个位运算枚举子集。 题意 给一个 $n$ 个数的集合,找出一个子集使其异或和最大,求出这个异或和。 思路 $n$ 很小,考虑直接 $2^n$ 枚举。 定义 $p_i$ 为一个人能力的权重和,首先要算出 $p_i$。 只需要把第 $i$ 个人所有能力的权重按位或起来就可以了。 需要注意的是,如果
阅读全文
摘要:基础思路 先来看点显然的。 我们设 $A$ 的个数为 $a$,$B$ 的个数为 $b$。 经过一次变换,$A\rightarrow B,B\rightarrow BA$, 只有 $B$ 会变出 $A$,那么就有 $a\leftarrow b$。 $A,B$ 都会变出 $B$,那么就有 $b\left
阅读全文
摘要:前置芝士: 简单的位运算知识:x & 1 == 1 则 x 是奇数,否则是偶数。 小奥奇偶性: A B A+B 奇数 奇数 偶数 奇数 偶数 奇数 偶数 偶数 偶数 思路 分类讨论: 都是偶数:NO 任意操作后数列的每个数都仍然是偶数,和也是偶数。 都是奇数:这个不好判断。 奇数个奇数加起来是奇数,
阅读全文
摘要:题意 给两个长度为 $n$ 的数组 $A,B$。 现在可以从 $A$ 中选 $k$ 个数,把 $a_i$ 改为 $a_i+1$。 然后可以把 $A$ 任意打乱,问操作后 $A$ 是否可以变成 $B$。 思路 显然,如果可以把 $A$ 变为 $B$, 那么在选取 $k$ 个数加一后,$A$ 与 $B$
阅读全文
摘要:题意 给定 $u,v$,求 $\dfrac xu+\dfrac yv=\dfrac{x+y}{u+v}$ 的任意一组整数解。 思路 先化简方程。两边同乘 $uv(u+v)$:$$ xv(u+v)+yu(u+v)=uv(x+y) $$ 拆括号:$$ xvu+xv^2+yu^2+yuv=uvx+uvy
阅读全文
摘要:有向图的传递闭包。(虽然不是正解) 复杂度:$O(\dfrac{n^3}w)$ 题意 给定一张有向图,$q$ 次询问。 每次询问两个点 $u,v$,问存不存在 $u\rightarrow v$ 的路径。 思路 很明显的传递闭包,转换成边权 $1/0$ 的完全图。 然后把 Floyd 的取 $\min
阅读全文
摘要:题意 给你两个 $n$ 位密码锁 $a,b$ 的每一位。 问你至少需要转几次才能把 $a$ 转成 $b$。 比如,把 $2$ 转成 $5$ 至少需要 $3$ 次,把 $7$ 转成 $1$ 至少需要 $4$ 次。 思路 不难发现,把数字 $a$ 转成 $b(a>b)$ 有两种方法: 直接从 $a$ 一
阅读全文
摘要:题意 维护一个变量 $m$,$m$ 初值为 $0$,有 3 种操作: LEFT:将 $m$ 改为 $m-1$。 RIGHT:将 $m$ 改为 $m+1$。 SAME AS x:重复第 $x$ 次操作。 所有操作后,输出 $m$ 的值。 思路 用一个数组 $a$ 来存每次操作时,$m$ 的加减情况。
阅读全文
摘要:前置知识 让我们来赞美万能的 STL 吧! string 的构造函数之一: string(char c, int n):构造一个含有 n 个连续字符 c 的 string。 思路 我们知道,波形的每一行都是由 i 个连续的 i 组成的。 那么我们就可以分别从低到高,从高到低循环两次, 每次用 str
阅读全文

浙公网安备 33010602011771号