博主头像
HailinCode

Full-Stack Developer

算法

蓝桥杯-砝码称重

你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1, W2, ..., WN。 请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边。 输入格式 第一行包含一个整数 N。 第二行包含 N 个整数 W1, W2, ..., WN。 输出一个整数代表答案。 另外本题可以使用DFS暴力搜索,代码如下: DFS版本会有两个测试节点超时,但是个人觉得会比较容易理解

算法

进制转换

转二进制: 转八进制: 转十六进制: 不难发现其中的规律,我们对n取余加在结果前面,再对n进行整除,因此我们可以设计一个通用进制转换函数,但仅限十六进制以内(含) 十进制转任意进制(≤ 16): 使用Python内置的库进行转换: 显式指定进制时,这里使用的范围是 2 ≤ base ≤ 36,限制的是进制参数 base,不是待转换的 num。

算法

蓝桥杯2025国赛-免费披萨

枚举 1~8 的全排列,再枚举 9 个插入位置,插入一个 1~8 的数字。 使用库函数进行优化 两种写法都检查 8! × 9 × 8 = 2,903,040 个候选(其中可能重复),每次还需构造九位数并计算 GCD。这个数是本题固定规模下的候选次数,不应写成时间复杂度的大 O。 原始 DFS 会保存 8! = 40,320 个基础排列对应的整数;库函数版本逐个生成排列,不保存全部结果,降低了额外存储。