当前位置: 首页 > news >正文

CCPC 2024 郑州 个人题解

比赛链接

  • QOJ 链接

题解完成情况

A B C D E F G H I J K L M
\(\Box\) \(\Box\) \(\Box\) 待补 待补 待补 \(\Box\) 待补 \(\Box\) \(\Box\)

H 是个论文题。

L. Z-曲线 (Z-order Curve)

点击查看题意简述

给定二维 Z 形曲线的一个有向片段 \(L \to R\)(构造方法请参见原题),求第一次出现该片段的位置。

数据范围:多测,\(1 \leq L, R \leq 10^{18}\)

直观上看,只需将所给有向片段不断左移、上移,直至无法移动。此时已经可以直接模拟这个过程。

进一步的,观察题中给出的图,不难发现,能够左移、上移的片段 \(L \to R\),二者的最高位的所在位置必然相同;否则,该片段必然无法移动。所以,只需从高到低考虑二者的二进制位,如果 \(L, R\) 的这一位不一致,立刻停止。否则,将 \(L, R\) 的这一位都变成 \(0\),继续考虑低一位即可。代码。

M. 拒绝采样 (Rejection Sampling)

点击查看题意简述

集合 \(N = \{1, 2, \cdots, n\}\),数字 \(i\) 有一个正整数权值 \(a_i\)。你现在有一个拒绝采样器,其工作方式如下:给定正整数 \(k\)\(n\) 个在 \([0, 1]\) 内的参数 \(p_1, \cdots, p_n\)
(1). 初始化集合 \(T \gets \varnothing\)
(2). 对每个 \(i \in N\):以 \(p_i\) 的概率将 \(i\) 加入 \(T\)
(3). 如果 \(|T| = k\),返回 \(T\)。否则回到 (1).
现在,给定 \(n, k\)\(a_i\),找到参数 \(p_1, \cdots, p_n\) 使得:

  • \(\sum_{i = 1}^{n} p_i = k\)
  • 对于 \(N\) 的任意 \(k\) 元子集 \(S\),该拒绝采样器返回 \(S\) 的概率正比于 \(S\) 中元素权值的乘积。

数据范围:\(2 \leq n \leq 10^5\)\(1 \leq k \leq n-1\)\(1 \leq a_i \leq 10^9\)

自然的,对于某 \(k\) 元集合 \(S\),拒绝采样器返回它的概率正比于在 (2). 中选中 \(S\) 的概率,也就是:

\[\prod_{i \in S} p_i \prod_{i \in N-S} (1 - p_i) \]

对于任意 \(i \in N, j \in N, i \neq j\),取 \(k\) 元集合 \(S\) 使得 \(i \in S, j \not \in S\),再令 \(S' = S \cup \{j\} - \{i\}\),那么根据题目要求:

\[\begin{aligned} \prod_{i \in S} p_i \prod_{i \in N-S} (1 - p_i) \propto \prod_{i \in S} a_i \\ \prod_{i \in S'} p_i \prod_{i \in N-S'} (1 - p_i) \propto \prod_{i \in S'} a_i \\ \end{aligned} \]

作商得到

\[\frac{p_i (1 - p_j)}{p_j (1 - p_i)} = \frac{a_i}{a_j} \]

该关系对任意 \(i, j\) 都需要成立,因此可以推得:参数 \(p_1, \cdots, p_n\) 满足题述要求当且仅当对诸 \(i \in N\) 皆有 \(\frac{p_i}{1-p_i} \propto a_i\)

不妨设 \(\frac{p_i}{1-p_i} = c a_i\),变形可得 \(p_i = \frac{c a_i}{1 + c a_i}\)。显然 \(p_i\)\(c\) 单增,二分出 \(c\) 即可。时间复杂度 \(O(n \log (n \max a_i))\)

需要注意二分精度需要取到 \(10^{-15}\) 级别,这里我使用了题解的方法,二分 \(\log c\) 来逃课减少二分次数。代码。

B. 滚动石子 (Rolling Stones)

点击查看题意简述

在边长为 \(n\) 的正三角形棋盘(图示请参照原题)上滚动一个边长为 \(1\) 的正四面体骰子,骰子一开始的状态固定,起点固定,要求每个每滚到一个格子,这个格子上的数必须和骰子此时底面的数相同。给定终点,问至少要滚动几次。

数据范围:\(n \leq 100\)

模拟骰子滚动的过程不难发现,当骰子到达滚到一个固定的格子的时候,此时骰子底面上的数是确定的。而且这个规律很简单,记最上方的格子是 \((0, 0)\),之后每一行的格子都是 \(0\)-indexed,那么骰子滚到 \((i, j)\) 时的底面数字是:

\[\begin{cases} 4 - j \bmod 4, \ i \bmod 2 = 0 \\ 1 + j \bmod 4, \ i \bmod 2 = 1 \end{cases} \]

据此容易判断哪些位置是没法滚到的。现在问题就转化成了:一个棋盘,上面有一些没法走的格子,给定起终点,问最少要走多少次?使用 BFS 解决这个问题即可,时间复杂度 \(O(n^2)\)

注意不要思维定势,可以往上走的,因为这个挂了一次。代码。

F. 无尽循环 (Infinite Loop)

C. 中点 (Middle Point)

点击查看题意简述

给定矩形的四个顶点 \((0, 0), (0, B), (A, 0), (A, B)\),每次操作中你可以选择两个点,如果这两个点的中点是整点,则可以作出这个中点,要求通过尽量少的次数作出整点 \((X, Y)\),给出方案或者报告无解。

先来看我们能构造出什么样的点,尝试后不难发现,\(k\) 次操作内能够做出来的点集为:

\[P_k = \left\{\left(\frac{aA}{2^k}, \frac{bB}{2^k}\right) \ | \ 0 \leq a, b \leq 2^k \right\} \]

但给出构造方法在场上是杀人诛心的,这题构造方法不少,但选错了方法写起来会很烦。

比较高妙的做法是,注意到:我们将 \(P_{k-1}\) 中的所有点分别和初始的四个点作中点,最终构成的点的集合恰是 \(P_k\),这在直观上看是显然的:将 \(P_{k-1}\) 中的所有点和 \((0, 0)\) 做中点,相当于把 \(P_{k - 1}\) 这一块的点向左下“拉伸”,所得的点的集合恰好是 \(P_k\) 中左下半区的点,剩下部分同理。

现已知 \((X, Y) \in P_k\),判断 \((X, Y)\) 在整个矩形内的位置,倒序执行上述过程即可:如果 \((X, Y)\) 在整个矩形的左下半区,那么我们认为 \((X, Y)\)\((0, 0)\)\((2X, 2Y)\) 作中点得到的,且 \((2X, 2Y) \in P_{k-1}\),不断倒推即可,时间复杂度 \(O(\log \max(A, B))\)

代码。

G. 配对 (Same Sum)

点击查看题意简述

现有 \(n\) 个数,你需要进行若干次区间加操作,并回答形如“是否能将该区间内所有数配成和相等的数对?”的询问。\(n, q \leq 2 \times 10^5\)

代码。

K. 土豆兄弟 (Brotato)

A. A + B = C 问题 (A + B = C Problem)

点击查看题意简述

构造三个最小正周期分别是 \(pA, pB, pC\) 的 01 串 \(A, B, C\),使得 \(A \oplus B = C\),或者报告无解。

数据范围:\(1 \leq pA, pB, pC \leq 10^6\)

可以通过大量尝试完成此题,但挺烦的。

因为 \(A \oplus B = C\),所以必须要有 \(pC | \operatorname{lcm}(pA, pB)\)。而 \(A \oplus B = C\) 同时说明 \(C \oplus B = A, C \oplus A = B\),所以同样需要有 \(pA | \operatorname{lcm}(pB, pC)\)\(pB | \operatorname{lcm}(pA, pC)\)。暂时找不到其它限制了,考虑在这个限制下先构造。

不妨设 \(pA \leq pB \leq pC\)\(g = \gcd(pA, pB, pC) = 1\)。若 \(g \neq 1\),我们只需找到 \((pA/g, pB/g, pC/g)\) 的一组解,再将该解中的所有 \(\mathtt{0}\) 替换为 \(\underbrace{\mathtt{0 \cdots 0}}_{g}\),所有 \(\mathtt{1}\) 替换为 \(\underbrace{\mathtt{1 \cdots 1}}_{g}\) 即可得到 \((pA, pB, pC)\) 的一组解。

但如上想法会在 \(pC = \operatorname{lcm}(pA, pB)\) 时出现问题,我们先处理掉这个边界情况:

  • 倘若 \(pA = pB = pC\),对 \(pA\) 分类讨论:
    • \(pA = 1\) 时,有解 \(A = B = \mathtt{1}\)\(C = \mathtt{0}\)
    • \(pA = 2\) 时,不难发现无解。
    • \(pA \geq 3\) 时,有解 \(A = \underbrace{\mathtt{0 \cdots 0}}_{pA - 2} \mathtt{01}\)\(B = \underbrace{\mathtt{0 \cdots 0}}_{pB - 2} \mathtt{10}\)\(C = \underbrace{\mathtt{0 \cdots 0}}_{pC - 2} \mathtt{11}\)
  • 否则,必须有 \(pA < pB \leq pC\)。可以考虑选取:\(A = \underbrace{\mathtt{0 \cdots 0}}_{pA - 1} \mathtt{1}\)\(B = \underbrace{\mathtt{0 \cdots 0}}_{pB - 1} \mathtt{1}\)\(C\)\(A^{\infty} \oplus B^{\infty}\) 的最短周期串。

接下来我们证明,这个构造符合题目要求。

证明. 待证其实等价于:对集合

\[S = \{x | (x \bmod pA = 0) \oplus (x \bmod pB = 0) = \mathbf{TRUE}\} \]

若正整数 \(T\) 满足 \(\forall x, x \in S \iff x + T \in S\),则 \(T \geq pC\)
显然 \(0 \not\in S\),那么对于任意整数 \(n\)\(n \cdot pA \cdot T \not\in S\)。而 \(n \cdot pA \cdot T \bmod pA = 0\),于是必须有 \(n \cdot pA \cdot T \bmod pB = 0\)。同理,对任意整数 \(m\),必有 \(m \cdot pB \cdot T \bmod pA = 0\)。于是:

\[\forall n, m \in \mathbb{N}, pC | (n \cdot pA - m \cdot pB) \cdot T \]

根据 Bezout 定理,存在 \(n, m\) 使得 \((n \cdot pA - m \cdot pB) = \gcd(pA, pB)\)。于是可以得到 \(pC | \gcd(pA, pB) \cdot T\)。而根据假设 \(\gcd(\gcd(pA, pB), pC) = 1\),所以须有 \(pC | T\)
另一方面,容易验证 \(pC\) 是符合要求的。所以 \(A^{\infty} \oplus B^{\infty}\) 的最短周期是 \(pC\)\(\Box\)

记总周期 \(L = \operatorname{lcm}(pA, pB, pC)\),串 \(A, B, C\) 的在总周期的重复次数分别是 \(a = L / pA\)\(b = L / pB\)\(c = L / pC\)。考虑上面的限制有什么用,可以发现:

\[\gcd(a, b) = \gcd \left( \frac{\operatorname{lcm}(pA, pB, pC)}{pA}, \frac{\operatorname{lcm}(pA, pB, pC)}{pB} \right) = \gcd \left( \frac{\operatorname{lcm}(pA, pB)}{pA}, \frac{\operatorname{lcm}(pA, pB)}{pB} \right) = 1 \]

同理可得 \(\gcd(a, c) = \gcd(b, c) = 1\),于是 \(a, b, c\) 两两互质。于是立刻可以得到 \(L\)\(abc\) 的倍数,而因为 \(g = 1\),不难验证只能有 \(L = abc\)\((pA, pB, pC) = (bc, ac, ab)\)

根据中国剩余定理,映射 \(f: \mathbb{Z}_{abc} \to \mathbb{Z}_{a} \times \mathbb{Z}_{b} \times \mathbb{Z}_{c}, f(t) = (t \bmod a, t \bmod b, t \bmod c)\) 是一个双射,而且我们可以只用 \((t \bmod a, t \bmod b)\) 还原出 \(t \bmod ab\),于是,原题转变成:对诸 \((i, j, k) \in \mathbb{Z}_{a} \times \mathbb{Z}_{b} \times \mathbb{Z}_{c}\),皆有:

\[A_{(j, k)} \oplus B_{(i, k)} \oplus C_{(i, j)} = 0 \]

固定 \(j, k\) 变动 \(i\),此时我们希望 \(B_{(i, k)} \oplus C_{(i, j)}\) 是一个定值。直觉上来看,我们希望 \(i\)\(B, C\) 的影响能够相互“抵消”。通过这个直觉,可以考虑如下形式的构造:记 \(I\)\(J\)\(K\) 分别是长度为 \(a, b, c\) 的 01 串,并令:

\[A_{(j, k)} = J_j \oplus K_k, B_{(i, k)} = I_i \oplus K_k, C_{(i, j)} = I_i \oplus J_j \]

容易验证,该构造能够使得上述限制恒成立。

接下来,我们选取合适的 \(I, J, K\),以让 \(A, B, C\) 的最短周期一定是 \(pA, pB, pC\)。而根据上文的证明,我们立刻可以发现,取 \(I = \underbrace{\mathtt{0 \cdots 0}}_{a - 1} \mathtt{1}\)\(J = \underbrace{\mathtt{0 \cdots 0}}_{b - 1} \mathtt{1}\)\(K = \underbrace{\mathtt{0 \cdots 0}}_{c - 1} \mathtt{1}\),即可使得 \(A, B, C\) 的最短周期分别是 \(bc, ac, ab\)

据此,我们完全解决了本题。代码。

J. 力争和谐 (Balance in All Things)

点击查看题意简述

某锦标赛有 \(k\) 轮,共有 \(2n\) 个人参加。初始时每个人的积分都是 \(0\)。每一轮中,你需要将 \(2n\) 个人配成 \(n\) 对,每一对中分数高的人 -1 分,分数低的人 +1 分,如果分数一样,那么编号小的人 +1 分,编号大的人 +1 分。问:有多少种配对方案,使得每个人分数的绝对值时刻不超过 \(3\)?答案对质数 \(P\) 取模。

数据范围:\(n \leq 400, k \leq 20\)

本题的算法框架是容易的。可以发现,在偶数轮的时候,每个人的分数只会在 \(\{-2, 0, 2\}\) 内,这一部分的状态数是 \(O(n)\) 的,因为 \(-2\) 分的人数惟一确定了这个状态。在奇数轮的时候,每个人的分数只可能取 \(\{-3, -1, 1, 3\}\),这一部分的状态数是 \(O(n^2)\) 的。所以,我们对所有状态进行编码,并对于任意两个状态 \(A, B\),预处理出能把状态 \(A\) 转为状态 \(B\) 的配对方案数 \(g_{A, B}\),那么我们记 \(f_{i, A}\) 表示在第 \(i\) 轮、目前在状态 \(A\) 的可能方案数,转移为:\(f_{i, A} = \sum_{B 是第 i - 1 轮的合法状态} g_{B, A} f_{i - 1, B}\),答案即为 \(\sum_{B 是第 k 轮的合法状态} f_{k, B}\)。这个 DP 的复杂度是 \(O(kn^3)\) 的。

现在,我们只需要预处理 \(g_{A, B}\)。分奇数轮 \(\to\) 偶数轮,偶数轮 \(\to\) 奇数轮两种情况进行处理。下文中,我们记 \(A = (a = \#(-2), x = \#(0), a = \#(2))\) 为一个偶数轮的状态,\(B = (y = \#(-3), b = \#(-1), c = \#(1), z = \#(3))\) 为一个奇数轮的状态。

先考虑偶数轮 \(A\) \(\to\) 奇数轮 \(B\) 的情况。此时,我们能确定的匹配是:\(-3\) 分的人只能由两个 \(-2\) 分的人对战得到,\(3\) 分的人只能由两个 \(2\) 分的人对战得到。所以,我们先预先拿出 \(2y\)\(-2\) 分、\(2z\)\(2\) 分配对。此时可以发现,无论如何匹配剩下的人,最终都能得到正确数量的 \(-1\) 分、\(1\) 分的人,只需要求将剩下的人进行匹配的方案数。

问题转化为:现有 \(i\)\(-2\) 分的人,\(j\)\(0\) 分的人,\(k\)\(2\) 分的人,要求:\(-2\) 分、\(2\) 分的人之间不能配对,求合法的配对方案数 \(p(i, j, k)\)。为了防止重复计数,我们强行规定匹配的顺序:先匹配 \(0\) 分和 \(2\) 分的人,再把 \(-2\) 分的人和其余人进行匹配。具体来说:

  • 初始化:\(p(0, 0, 0) = 1\)
  • \(2\) 分的人之间无法匹配,\(p(0, 0, k) = 0\)
  • 接下来,考虑 \(0\) 分的人的匹配,若当前正在考虑第 \(j\)\(0\) 分的人:
    • \(j \geq 2\),我们可以从前 \(j - 1\)\(0\) 分的人中选出一个,和当前这个人匹配,转移:\((j - 1) \cdot p(0, j - 2, k) \to p(0, j, k)\)
    • \(k \geq 1\),我们可以从前 \(k\)\(2\) 分的人中选出一个,和当前这个人匹配,转移:\(k \cdot p(0, j - 1, k - 1) \to p(0, j, k)\)
  • 接下来,考虑 \(-2\) 分的人的匹配,若当前正在考虑第 \(i\)\(-2\) 分的人:
    • \(j \geq 1\),我们可以从前 \(j\)\(0\) 分的人中选出一个,和当前这个人匹配,转移:\(j \cdot p(i - 1, j - 1, k) \to p(i, j, k)\)
    • \(k \geq 1\),我们可以从前 \(k\)\(2\) 分的人中选出一个,和当前这个人匹配,转移:\(k \cdot p(i - 1, j, k - 1) \to p(i, j, k)\)

那么,能使偶数轮状态 \(A = (a = \#(-2), x = \#(0), a = \#(2))\) 变为奇数轮状态 \(B = (y = \#(-3), b = \#(-1), c = \#(1), z = \#(3))\) 的配对方案数是:

\[g_{A, B} = \binom{a}{2y} (2y - 1)!! \binom{a}{2z} (2z - 1)!! p(a - 2y, x, a - 2z) \]

再考虑奇数轮 \(B\) \(\to\) 偶数轮 \(A\) 的情况。此时效仿上述做法就会发生一些问题,至少,此时 \(p\) 会有自由的四维,计算 \(p\) 的复杂度无法接受。

怎么办呢?还是考虑我们能确定什么。此时,\(-3\) 分的人必须全部变成 \(-2\) 分,而剩下 \(-2\) 分的人必须由 \(-1\) 分的人得到。所以,我们知道,必须恰有 \((a - y)\)\(-1\) 分的人,和其余 \(-1\) 分的人或者 \(-3\) 分的人配对。同理,必须恰有 \((a - z)\)\(1\) 分的人,和其余 \(1\) 分的人或者 \(3\) 分的人配对。

如果我们确定了上述两种情况的配对方案,那么,我们还没考虑到的配对方案必然形如一个负分的人和一个正分的人匹配。而且不难发现,此时剩余的正分的人和负分的人必然相等。所以,对于这一部分人,我们可以随意的将负分的人和正分的人匹配,没有其他限制。于是,如果我们能求出:现有 \(i\)\(-1\) 分的人、\(j\)\(-3\) 分的人,它们内部进行 \(k\) 次匹配的方案数 \(q(i, j, k)\),那么计算可得(\(1\) 分与 \(3\) 分的情况是对称的):

\[g_{B, A} = q(b, y, a - y) q(c, z, a - z) (3y + b - 2a)! \]

接下来考虑求解 \(q(i, j, k)\)

  • 首先考虑 \(-3\) 分的人的匹配,显然,\(-3\) 分的人之间不能匹配,于是 \(q(0, j, 0) = 1\),否则 \(q(0, j, k) = 0\)
  • 接着,考虑 \(-1\) 分的人的匹配,若当前正在考虑第 \(i\)\(-1\) 分的人:
    • 首先,我们可以留着这个人,让他和正分的人匹配,转移:\(q(i - 1, j, k) \to q(i, j, k)\)
    • 如果 \(i \geq 2\)\(k \geq 1\),我们可以从前 \(i - 1\)\(-1\) 分的人中选出一个,和当前这个人匹配,转移:\((i - 1) \cdot p(i - 2, j, k - 1) \to p(i, j, k)\)
    • 如果 \(j \geq 1\)\(k \geq 1\),我们可以从前 \(j\)\(-3\) 分的人中选出一个,和当前这个人匹配,转移:\(j \cdot p(i - 1, j - 1, k - 1) \to p(i, j, k)\)

据此本题解决。实现时,需要对预处理时各维度的范围进行严格限制,否则可能会 TLE/MLE。代码。

相关文章:

CCPC 2024 郑州 个人题解

目前完成:A、B、C、J、L、M。 待补:D、E、F、G、I、K。比赛链接QOJ 链接题解完成情况A B C D E F G H I J K L M\(\Box\) \(\Box\) \(\Box\) 待补待补 待补\(\Box\) 待补 \(\Box\) \(\Box\)H 是个论文题。 L. Z-曲线 (Z-order Curve)点击查看题意简述 给定二维 Z 形曲线的一个…...

Pollard Rho 分解质因数

Miller_Rabin 判断素数 如果有 \(a^{p-1} \equiv 1(\bmod p)\) ,\(p\) 大概率为质数。但是人们发现有些合数无法被这个式子判掉。 有一个显然成立的式子: \(x^2 \equiv 1 (\bmod p) \rightarrow x^2-1\equiv 0 \rightarrow (x-1)(x+1) \equiv 0\)​ 当 \(p\) 是质数时,\(x\)…...

智慧消防大数据中心

在现代城市化进程不断加快的背景下,消防安全面临着日益复杂严峻的形势。传统消防模式难以满足大体量、多样化的消防需求。智慧消防大数据中心应运而生,它如同消防领域的 “智慧大脑”,正全方位革新消防工作模式,为生命财产安全筑牢坚实防线。一、建设内容 (一)数据采集层…...

GAS_Aura-Input Config Data Asset

1...

[杂谈] 关于听的音乐

持续更新中,应为开学较忙未能一次整理完。 防止有某些人攻击,叠甲。 以下所有内容仅代表个人观点,没有贬低某歌手或歌曲的意思,如果有不同意见欢迎在评论区讨论,但请保持良好的语言环境。 就是分享一下自己听的音乐吧,虽然Frums的歌手排行中第一是山茶花第二是静屋。 听歌…...

7777

tyyyy...

[豪の学习笔记] 软考中级备考 基础复习#7

基本概念、编译与解释、文法、语法推导树、有限自动机、正规式、表达式、传值与引用、各种程序语言特点跟学视频:学以致知Learning - 软件设计师 基础阶段|考点理论精讲 Chapter 7 - 程序设计语言基础知识 1 - 基本概念 低级语言和高级语言低级语言:通常称机器语言和汇编语言…...

经典面试题目:二叉树遍历

一、 核心定义与性质 二叉树(Binary Tree) 是一种每个节点最多有两个子节点的树形结构。这两个子节点通常被称为左子节点和右子节点。 关键术语:根节点(Root): 树的顶层节点,没有父节点。 叶子节点(Leaf): 没有子节点的节点。 深度(Depth): 从根节点到该节点所经历…...

十、微程序控制器是什么?

目录一言以蔽之一个精妙的比喻:做菜与菜谱核心组成部分(对照比喻)它为什么重要?有什么优点?总结一言以蔽之 微程序控制器是CPU的“灵魂指挥家”,它通过执行预先写好的“微程序”(一套精细的指令步骤)来指挥CPU的各个部件协同工作,从而完成一条条机器指令。一个精妙的比…...

2023CCPC秦皇岛站

define时间:#define itn int #define int long long #define ind long double #define yes cout << "Yes" #define no cout << "No" #define pii pair<long long, long long> #define pci pair<char, int> #define re return;QOJ…...

十一、微程序控制器的组成和工作过程

目录一、微程序控制器的核心思想二、微程序控制器的主要组成部分三、微程序控制器的工作过程(重中之重)四、一个简单的例子一、微程序控制器的核心思想 首先,再次强调其核心思想:将一条机器指令的执行,转化为一段由更简单的“微指令”组成的“微程序”的执行。 这些微程序…...

11

111...

六、数据通路的功能和基本结构

目录1. 数据通路的功能2. 数据通路的基本结构3. 工作流程示例(以加法指令 ADD Rd, Rs, Rt 为例)总结1. 数据通路的功能 数据通路(Data Path) 是中央处理器(CPU)的核心组成部分之一。它的主要功能是为指令的执行提供数字信号(数据、地址)的传输路径和加工场所。 具体来说…...

五、单周期CPU和多周期CPU

目录单周期CPU核心思想工作原理优点缺点多周期CPU核心思想工作原理优点缺点核心差异对比总结与发展计算机组成原理中的两个核心概念:单周期CPU和多周期CPU。 它们是实现CPU控制器的两种经典设计方法,各有其优缺点和设计哲学。单周期CPU 核心思想 单周期CPU的设计理念非常直观…...

七、组合逻辑元件(操作元件)和 时序逻辑元件(状态原件)

目录1. 组合逻辑元件(Combinational Logic Elements)核心特征功能常见示例抽象表示2. 时序逻辑元件(Sequential Logic Elements)核心特征功能常见示例抽象表示对比总结在数据通路中的协同工作在数字电路和计算机组成原理中,几乎所有元件都可以被划分为这两大类:组合逻辑元…...

九、指令、微程序、微指令、微命令、微操作

目录核心比喻:做一道菜(比如“鱼香肉丝”)1. 指令 (Instruction)2. 微操作 (Micro-operation, μop)3. 微命令 (Micro-command)4. 微指令 (Microinstruction)5. 微程序 (Microprogram)梳理总结与记忆口诀核心比喻:做一道菜(比如“鱼香肉丝”) 我们把执行一条CPU指令(比如…...

八、CPU控制器的功能和工作原理

目录一、CPU控制器是什么?二、控制器的核心功能三、控制器的工作原理1. 硬布线控制器(Hardwired Control)2. 微程序控制器(Microprogrammed Control)四、现代控制器的演变总结一、CPU控制器是什么? CPU(中央处理器)是计算机的大脑,而控制器(Control Unit, CU) 则是这…...

Linux命令实践

课上测试 作业题目:Linux命令实践 | 学号 | 20131321 | | 姓名 | 王曦轶 | | 日期 | 2025-09-11 | | 实验环境 | Ubuntu |目录实验目的 命令清单与截图 遇到的问题和解决方法 总结与心得实验目的熟练掌握 ls / who / pwd / cd /man/whereis/find/locate/ grep 等高频命令的常…...

Debian 12 解决乱码问题

1.安装中文包apt install -y locales locales-all2.配置本地化设置dpkg-reconfigure locales勾选 中文apt install -y fonts-wqy-zenhei fonts-wqy-microhei xfonts-wqyreboot如果还是不行nano /etc/default/locale## 写入下面的内容 LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 LC_C…...

软工第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13478这个作业的目标 <初步了解博客的写作;向别人介绍自己;了解Github的基本…...

Kafka的元数据Metadata

元数据是指Kafka集群的元数据,这些元数据具体记录了集群中有哪些主题,这些主题有哪些分区,每个分区的leader副本分配在哪个节点上,follower副本分配在哪些节点上,哪些副本在AR、ISR等集合中,集群中有哪些节点,控制器节点又是哪一个。Kafka 的元数据(Metadata) 正是描述…...

datadome笔记

pYZs00 -> 0 y7S2ew -> 0E9CFE54DD8A 随机数 有 hash 组成 NEvtKJ -> 0 首次执行 为0 ,查看localStorage 里的值 PFLOGM -> 1.17.0 js固定 wugUNB | display window["ddm"]["displayEnabled"] 返回的...

AI 机器视觉检测方案:破解食物包装四大质检难题,筑牢食品安全防线

在食品生产领域,包装盒或包装袋作为食品的直接包装载体,其质量优劣直接关系到食品安全与企业声誉。传统人工质检在应对食物包装生产的高速节奏与复杂质量问题时,逐渐暴露出诸多局限性,成为企业发展的瓶颈。而 AI 视频检测技术的出现,犹如一把 “智能利剑”,精准且高效地斩…...

Tkinter 多线程并行任务开发:从秒数丢失到完整显示的踩坑与解决

在 Tkinter 桌面应用开发中,多线程是解决 UI 卡顿的常用方案,但新手很容易在 "线程安全" 和 "UI 更新" 上踩坑。本文记录了一次 Tkinter 多线程并行任务开发中的典型问题:函数执行秒数丢失、最后一秒不显示,以及对应的排查思路和解决方法,适合 Tkinte…...

和你的推式子过一辈子去吧。

问题 给定若干个数 \(a_1 \dots a_n\),\(q\) 次询问,或单点修改,或询问第 \(i\) 个数取 \([0,a_i]\) 中任意数时,\(n\) 个数异或和是 \(z\) 的方案数。 本题的正确做法应该是贪心,但是我的贪心能力为 \(0\),就十分诡异地发现这个东西可以推式子推出来。 一些记号:\(\tex…...

NKOJ全TJ计划——NP1397

题目内容 有一条河,左边一个石墩(A区)上有编号为\(1\backsim n\)的只青蛙,河中有个\(k\)荷叶(C区),还有个\(h\)石墩(D区),右边有一个石墩(B区),如下图所示。\(n\)只青蛙要过河(从左岸石墩A到右岸石墩B),规则为: 石墩上可以承受任意多只青蛙,荷叶只能承受一只青蛙(不论大…...

LT9211C 芯片使用

配置文件: LT9211C_Main.h DrvTtlRx.c 添加屏时序参数 ModTtlRx.h ModMipiTx.h...

枚举类型

在实际的编程应用中,有的变量只有几种可能的取值,譬如说一个家族的几个成员,性别的两种可能等等。C++为这种类型的变量的定义提供了enum关键字。要使用枚举类型的变量,首先需要先定义一个枚举类型名,再声明变量是该枚举类型的。 一、枚举类型的定义 1、定义方式: enum 枚…...

用 C++ + OpenCV + Tesseract 实现英文数字验证码识别(完整可跑)

本文展示如何用 C++ 结合 OpenCV 做图像预处理,再调用 Tesseract OCR 识别验证码。适用于希望在高性能后端或本地服务里集成 OCR 的场景。方案包含: 环境与依赖安装 图像预处理(灰度、二值化、形态学去噪、放大) 使用 Tesseract API 调用(设定白名单、PSM) 完整 C++ 示例…...

2025中国HR SaaS市场分析与选型指南

引言:HR SaaS——企业数字化转型的核心驱动力 2025年,中国HR SaaS市场正站在一个关键的十字路口。随着企业对人力资源战略价值的重新认知,以及人工智能、云计算等前沿技术的深度融合,HR SaaS已不再是简单的管理工具,而是企业实现数字化转型、提升人才竞争力的核心驱动力。…...

jenkins部署消息发送至钉钉--jenkins配置

jenkins配置: 1、点击进入设置页面 2、点击进入插件管理页 3、安转钉钉插件 4、安装后,点击进入 5、输入前面复制的webhook,和钉钉那输入的关键字,保存应用后就配置成功了...

android java层字符串加密对抗

常见的字符串加密格式 来源以及熟悉 1)stringfog插件实现对抗方法 1)dex转换jar2)jar加载对应的解密方法3)遍历文件定位加密函数的位置以及参数4)主动调用以及加密 -- 后期可以把结果覆盖重新打包jadx加载可以还原...

Windows10 RDP远程桌面连接被控端wifi自动断开解决

操作系统: win10 wifi协议: Wi-Fi 6 (802.11ax) 安全类型: WPA2-企业 登录信息的类型: Microsoft: 受保护的 EAP (PEAP)现象 使用frp暴露端口到公网,使用window rdp登录到被控端时,连接配置处理,然后被控端黑屏,wifi端口,导致连接不上。 原因 由于wifi是需要企业认证的,并…...

2025春季杭电多校4题解

进入正题 1004这道题没写出来最后,但依然有所收获。正如题解所说,像这种一大堆操作得到某种符合设定的东西,然后进行计数的题,往往都需要一个简洁的性质。这种性质不是手模样例搞出来的,就是猜出来的。但是像我这种蒟蒻,脑电波不容易对上的,模又模不出来,猜也猜不对,拿…...

2025春季杭电多校5题解

1009这么能猜?这个数据范围,对博弈论来说一定存在某种结论。故这题是结论题。设\(dp[n]\)表示有\(n\)个物体时敌方先手,我的胜率。则敌方先手后轮到我时有n-1或者n-4个物体,我再取物体。我取物体时肯定要的是胜率最大,所以有转移方程\(dp[n]=\frac{1}{2}*max(dp[n-1-1],dp[…...

Window10 关闭Edge浏览器的多选项卡通过Alt+Tab组合键切换的方式

在系统设置页面。 进行如下操作即可。这里就设置为图中的选项即可。之后切换的时候就会对Edge浏览器窗口级别进行切换了,不会再出现Alt+Tab组合键对Edge浏览器的选项卡级别的切换了。复制请注明出处,在世界中挣扎的灰太狼...

云行 | 国云聚智 AI甬动,天翼云中国行宁波站成功举办!

近日,以“国云聚智 AI甬动”为主题的天翼云中国行宁波站暨2025浙江电信AI+产业融合创新主题活动在宁波成功举办。作为第十五届智慧城市与智能经济博览会的重要组成部分,本次活动邀请到宁波市人民政府副市长金珊,宁波市人民政府副秘书长虞礼勇,宁波市通信管理局局长杨碧慧,…...

2025春季杭电多校3题解

翻车了 1005 没什么好说的,并查集维护就行 void solve(){int n;cin>>n;map<int,bool>vis;vector<int>a(n+1);for(int i=1;i<=n;i++){cin>>a[i];vis[i]=true;}vector<int>fa(n+1);iota(fa.begin(),fa.end(),0);auto find=[&](int x)->…...

华为鸿蒙(4.0)应用开发(4)—ArkTs开发语言 – 每天进步一点点

文链接:华为鸿蒙(4.0)应用开发(4)—ArkTs开发语言 – 每天进步一点点 鸿蒙4.0用的编程语言是ArkTs。它是在TypeScript的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。 简单来说,TypeScript是JavaScript的超集…...

【人工智能通识专栏】第十讲:阅读理解 - 指南

【人工智能通识专栏】第十讲:阅读理解 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !i…...

jenkins部署消息发送至钉钉--钉钉配置

钉钉配置: 1、在群设置里面点击机器人选项 2、点击添加机器人 3、选择自定义机器人 4、然后安全设置选择关键字就行,简单,内容随便输个 5、点击完成后会自动生成webhook,复制下来,钉钉这边的配置就完成了...

HyperWorks许可规划

在当今竞争激烈的工程设计与仿真市场中,高效且经济的资源管理成为企业成功的关键。HyperWorks作为一款功能强大的工程仿真软件,其许可规划功能帮助用户科学、合理地规划和管理许可资源,确保资源的高效利用,进而推动业务的持续增长。 什么是HyperWorks许可规划? HyperWorks…...

[GCJ 2015 #3] River Flow

定义函数 \(f_t(x)=\left\lfloor\dfrac{x}{2^t}\right\rfloor \bmod 2\),也就是周期为 \(2^{t+1}\) 的值域为 \([0,1]\) 的方波。 现在给定你一个离散函数 \(g\) 的长为 \(n\) 的片段,问你能不能将他表示为若干个如下函数的和: \[g(x)=\sum_ik_if_{t_i}(x+b_i) \]如果能,构…...

2025ICPC网络赛第一场题解

D题:树形DP 题意:给定一棵树,树上每个节点都有权值,断开若干条边,使树变成若干个连通块,定义每个连通块的贡献为连通块内最大点权\(-\)最小点权。算出总贡献和\((ans)\),要求和最大。 观察:考虑一个连通块,发现对连通块有贡献的仅为最大最小点权所在的点,其他节点贡献…...

拦截抓浏览器数据DrissionPage的演示

有时候一些网站进行了加密,显示的内容还用JS搞活字乱刷术,但是可以通过抓包抓到XHR中的JSON数据,而drissionpage(下文简称DP)相较于selenium可以更方便地抓这种数据; 本文内容仅用于学习交流,不得用于商用,侵权告删;可以看到唯独工资这块,被JS动了,由于参数很多,逆向…...

登录认证-下篇:基于 Redis 实现共享session登录

将验证码 (session.setAttribute("code", code));用户信息 (session.setAttribute("user", userDTO))改为存入redis中 将随机生成的token作为登录凭证,放在请求头中的authorization字段 并设置两层拦截器,解决状态登录刷新的问题业务流程图1业务流程图2…...

用 Go + Tesseract 实现英文数字验证码识别

一、为什么选 Go 二进制部署方便、启动速度快,适合在服务器或微服务中部署 OCR 接口。 gosseract 是成熟的 Go 对 Tesseract 的封装,调用简单。 可与 Go 的并发模型天然结合,便于批量或并发识别。 二、环境准备安装 Go(1.18+ 推荐) 更多内容访问ttocr.com或联系1436423940…...

基于MATLAB的CNN大气散射传播率计算与图像去雾实现

1. 核心流程设计 通过CNN直接学习大气散射模型中的传播率(透射率 t(x)),结合物理模型实现端到端去雾,流程如下: % 整体流程框架 input_img = imread(hazy_image.jpg); % 输入雾图 preprocessed_img = preprocess(input_img); % 预处理 [t_pred, A_pred] = cnn_model(prepr…...

.net连接MYSQL数据库字符串参数详细解析(总结)

通常数据库连接字符串为:Database=dbname;Data Source=192.168.1.1;Port=3306;User Id=root;Password=****;Charset=utf8;TreatTinyAsBoolean=false;其中常用的参数如下:Server,host, data source, datasource, address, addr, network address: 数据库位置(以上任何关键字均…...

Kubernetes 数据存储

在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。 Volume是Pod中能够被多个容器访问的共享目录…...