示例代码 K, L = map(int, input().split()) MOD = 10**9 + 7 prev = [1] * K for _ in range(1, L): curr = [0] * K for j in range(K): curr[j] = sum(prev[m] for m in range(K) if abs(m - j) != 1) % MOD prev = curr print(sum(prev[1:]) % MOD) 删除的连续数(位运算技巧)
示例代码 nums = list(map(int, input().split(','))) xor = 0 min_val = max_val = nums[0] for num in nums: xor ^= num min_val = min(min_val, num) max_val = max(max_val, num) for num in range(min_val, max_val + 1): xor ^= num print(xor) 完美代价(贪心策略证明)
示例代码 from collections import deque n = int(input()) s = list(input()) count = 0 flag = False for i in range(n // 2): j = n - 1 - i if s[i] != s[j]: k = j - 1 while k > i and s[k] != s[i]: k -= 1 if k == i: if n % 2 == 0 or flag: print("Impossible") exit() flag = True count += n // 2 - i else: count += j - k s[k], s[k + 1:j + 1] = s[k + 1:j + 1], s[k] print(count) N皇后(位运算优化)
示例代码 def solveNQueens(n): count = 0 cols = 0 diag1 = 0 diag2 = 0 def backtrack(row): nonlocal count, cols, diag1, diag2 if row == n: count += 1 return for col in range(n): if (cols & (1 << col)) or (diag1 & (1 << (row + col))) or (diag2 & (1 << (row - col + n - 1))): continue cols |= 1 << col diag1 |= 1 << (row + col) diag2 |= 1 << (row - col + n - 1) backtrack(row + 1) cols ^= 1 << col diag1 ^= 1 << (row + col) diag2 ^= 1 << (row - col + n - 1) backtrack(0) return count
n = int(input()) print(solveNQueens(n)) 通过对这10道蓝桥杯Python真题的深入分析,希望能帮助大家掌握蓝桥杯竞赛中常见的题型和解题思路,在2025年的蓝桥杯竞赛中取得理想的成绩。在备考过程中,建议大家多做真题,熟悉各种算法和数据结构的应用,不断提升自己的编程能力和思维水平。