python 90分 #8TLE超0.08s求调
查看原帖
python 90分 #8TLE超0.08s求调
941164
kiwi0810楼主2025/1/27 11:54

自己先写了个dp 拿了90 代码如下

w=int(input())

n=int(3)
cin2=[1,5,11]

dp=[90000]*(w+1)
dp[0]=0

for i in range(w+1):
    for j in cin2:
        if j<=i:
            dp[i]=min(dp[i],dp[i-j]+1)

#print(dp)
print(dp[w])

然后怀疑是luogu评测的问题封装成了函数 然后全re 代码如下

def min_coins(w, coins):
    # 递归终止条件
    if w == 0:
        return 0
    if w < 0:
        return float('inf')  # 无效情况,返回无穷大

    # 初始化结果为无穷大
    result = float('inf')

    # 遍历所有硬币面值,递归调用
    for coin in coins:
        sub_result = min_coins(w - coin, coins)
        if sub_result != float('inf'):
            result = min(result, sub_result + 1)

    return result

# 保留原有的输入格式
w = int(input())
n = 3
cin2 = [1, 5, 11]

# 调用函数
result = min_coins(w, cin2)

# 保留原有的输出格式
print(result)
2025/1/27 11:54
加载中...