题解:P12184 [蓝桥杯 2025 省 Python A] 偏蓝

· · 题解

题意

有三个数字 0\leq R,G,B \leq 255,求出 B>RB>G 的情况数量。

分析

我们可以看到这道题是一个提交答案题,所以提供两种思路:

思路一 数学

B=n 时有 k 个排列满足需求。通过排列的计算公式不难发现,当 n 增加了 1,相应的 \sqrt{k} 相比前一个 \sqrt{k} 增加了 1

即可推出公式:k_n=n^2

此时求出 \sum{k} 即可。

复杂度 O(B)

程序一

ans = 0
for m in range(256):
    ans = ans + m * m
print(ans)

思路二 枚举

顾名思义,我们只需要枚举每一个 R,G,B 的情况,然后判断是否符合 B>RB>G 即可。

复杂度 O(B^3)

程序二

ans = 0
for R in range(256):
    for G in range(256):
        for B in range(256):
            if (B > R and B > G):
                ans = ans + 1
print(ans)