蓝桥杯 之 第27场月赛总结

文章目录

习题

比赛地址

1.抓猪拿国一

  • 十分简单的签到题
python 复制代码
print(sum(list(range(17))))

2.蓝桥字符

  • 常见的字符匹配的问题,是一个二维dp的问题,转化为对应的动态规划求解

力扣的相似题目

可以关注灵神的讲解

python 复制代码
import os
import sys

# 请在此输入您的代码

# 动态规划的问题
s = input()
n = len(s)
# 定义dp[i][j]表示为lan [:i] 在 s[:j]中出现的次数
dp = [[0]*(n+1) for _ in range(4)]
s1 = "lan"
# 初始化dp[0][i] = 1
for i in range(n+1):
  dp[0][i] = 1
for i in range(3):
  for j in range(n):
    if s1[i] == s[j]:
      dp[i+1][j+1] = dp[i+1][j] + dp[i][j]
    else:
      dp[i+1][j+1] = dp[i+1][j]
print(dp[-1][-1])
  • 另一种思路,使用前缀的思路

3.蓝桥大使


  • 考察的知识点是:排序+贪心
  • 可以看到最后总共求解的是总共的最大值,那么我们可以先安排其中一方先选,另一方后选
  • 在这里,我们让小蓝先选,那么小蓝应该选哪些元素?贪心化的思路:选对应的下标中A[i]-B[i]差距最大的那些元素,这样的话,才可以发挥小蓝这边的优势
python 复制代码
n = int(input())
A,B = [],[]
cha = []
for i in range(n):
    a,b = map(int,input().split())
    A.append(a)
    B.append(b)
    cha.append([a-b,i])
# 贪心化做法,排序,将A-B的结果作差,由小蓝先选
# 降序排序
ans = 0
cha.sort(reverse=True)
for j in range(n):
    if j <= n//2 -1:
        ans += A[cha[j][1]]
    else:
        ans += B[cha[j][1]]
print(ans)

4.拳头对决


  • 题目有坑:不是1v1,并且蓝队和红队的对应的A,B要区别好
  • 题目的问题就转化为这个如何在一个区间内,求解出小于A[i]的B[j]的个数?,在这里,就用到这个树状数组这一个工具

推荐大家先完成力扣的几个相关的知识,先感受一下树状数组的功能与作用

相关的博客

  • 要学会适应在大范围的时候,离散化这个数值再使用这个树状数组,并且到底求解的是正序对还是逆序对,对应的排序是升序还是降序得区分好
相关推荐
闻缺陷则喜何志丹14 小时前
【计算几何 二分查找】P12261 [蓝桥杯 2024 国 Java B] 激光炮|普及+
c++·数学·蓝桥杯·计算几何·洛谷
_OP_CHEN15 小时前
【算法基础篇】(三十一)动态规划之基础背包问题:从 01背包到完全背包,带你吃透背包问题的核心逻辑
算法·蓝桥杯·动态规划·背包问题·01背包·完全背包·acm/icpc
闻缺陷则喜何志丹16 小时前
【计算几何】P12144 [蓝桥杯 2025 省 A] 地雷阵|普及+
c++·数学·蓝桥杯·计算几何
迈巴赫车主19 小时前
蓝桥杯 20531黑客java
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
Benmao⁢1 天前
C语言期末复习笔记
c语言·开发语言·笔记·leetcode·面试·蓝桥杯
_OP_CHEN3 天前
【算法基础篇】(二十九)路径类线性 DP 保姆级教程:从矩阵到迷宫,覆盖 4 道经典题 + 优化神技
算法·矩阵·蓝桥杯·动态规划·算法竞赛·acm/icpc·路径类动态规划
_OP_CHEN4 天前
【算法基础篇】(二十八)线性动态规划之基础 DP 超详解:从入门到实战,覆盖 4 道经典例题 + 优化技巧
算法·蓝桥杯·动态规划·运筹学·算法竞赛·acm/icpc·线性动态规划
云泽8084 天前
蓝桥杯算法精讲:前缀和与差分算法的应用与实战
算法·职场和发展·蓝桥杯
Swift社区4 天前
LeetCode 444 - 序列重建
算法·leetcode·蓝桥杯
potato_may5 天前
工程框架搭建(续)
蓝桥杯·嵌入式·硬件·国赛·调度器·裸机开发·stm2