博主头像
HailinCode

Full-Stack Developer

标签 回溯 下的文章

算法

农夫过河问题

农夫过河问题题目描述一位农夫需要将猫、鸡、米从河的左岸运到右岸。农夫有一条小船,但船每次只能载农夫本人加上一样东西。限制条件🐱🐔 猫和鸡不能单独待在一起(猫会吃鸡)🐔🌾 鸡和米不能单独待在一起(鸡会吃米)🐱🌾 猫和米可以单独待在一起(没有危险)目标找到一种安全的搬运顺序,使农夫、猫、鸡、米全部安全到达右岸。初始状态左岸:农夫 🧑、猫 🐱、鸡 🐔、米 🌾 右岸:(空)目标状态左岸:(空

算法

蓝桥杯-砝码称重

2021蓝桥杯省赛 - 砝码操作砝码称重问题描述你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1, W2, ..., WN。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。输入格式第一行包含一个整数 N。第二行包含 N 个整数 W1, W2, ..., WN。输出格式输出一个整数代表答案。样例输入3 1 4 6样例输出10参考答案# 蓝桥杯 - 砝码称重 n = int(

算法

蓝桥杯2025国赛-免费披萨

蓝桥杯2025国赛-免费披萨方法一:手动枚举所有的1-9全排列,枚举插入位置,枚举插入数字import os import sys # 请在此输入您的代码 ans = [] from math import gcd n = int(input()) def dfs(num_set: set, path: list): if len(path) == 8: ans.a

算法

分考场

蓝桥杯-分考场DFS + 回溯 + 图 import os import sys # 请在此输入您的代码 n = int(input()) m = int(input()) # 人 g = [[0] * (n + 1) for _ in range(n + 1)] for _ in range(m): a, b = map(int, input().split()) g[a]

算法

跳跃

蓝桥杯-跳跃 import os import sys # 请在此输入您的代码 from math import inf n, m = map(int, input().split()) grid = [] for _ in range(n): grid.append(list(map(int, input().split()))) ans = float(-inf) def d