贝加尔湖畔

· · 题解

Source and Knowledge

2025 年 2 月语言月赛,由洛谷网校提供。

考察字符串的处理。

文字题解

将 IPv6 地址读入字符串 S

根据题意,IPv6 地址可以被分为 8 节,每节 4 位十六进制数。对于一个没有应用任何简化规则 IPv6 地址,输入应该恰好包含 8\times4+7=39 个字符(8 节,每节 4 字符,7:)。

考虑两条化简规则带来的影响:

我们将 : 作为分隔符,将字符串 S 分割开。如果没有分割出 8 节,则在 :: 的位置用 0000 补齐 8 节。

每一节中,用前导零补齐 4 位,接着将十六进制转二进制输出即可。这可以通过直接枚举十六进制的字符完成。