2024 蓝桥杯模拟赛3(div1+div2)
1|0P8834 [传智杯 #3 决赛] 序列
枚举
2|0P8780 [蓝桥杯 2022 省 B] 刷题统计
数据很弱可以直接枚举
当然比较保险的做法是算出一周的做题数,然后除一下
3|0P8623 [蓝桥杯 2015 省 B] 移动距离
要把变换转换为坐标,然后计算曼哈顿距离。要注意偶数行的话要把纵坐标倒过来
4|0P8738 [蓝桥杯 2020 国 C] 天干地支
直接打表,然后计算一下偏移量
5|0P8635 [蓝桥杯 2016 省 AB] 四平方和
枚举三个平方数,然后计算第四个平方数,有解直接输出
6|0P8697 [蓝桥杯 2019 国 C] 最长子序列
直接贪心从前向后匹配即可,但是注意如果采用整行读入的做法,末尾疑似有多余的空格。
7|0P8654 [蓝桥杯 2017 国 C] 合根植物
这题并不需要转换坐标,直接采用并查集合并即可
8|0P9421 [蓝桥杯 2023 国 B] 班级活动
首先统计每种人名使用的次数
如果一种名字使用次数等于2,则不用操作
如果一种名字使用次数大于2,则大于2的部分都需要改名,把这部分和记为
如果一种名字使用次数小于2,也就是等于1,不一定需要改名,先把这部分的和记为
我们来考虑最优解是什么?最优解一定是把部分的名字修改为,然后把剩下的其中一半修改为另一半
所以答案就是
9|0P8604 [蓝桥杯 2013 国 C] 危险系数
因为点和边都不多,所以直接枚举删掉一个点,然后用并查集维护一下连通性,然后判断是否联通,如果不连通,则删掉的点就是关键点
10|0P8692 [蓝桥杯 2019 国 C] 数正方形
首先我们把点转换成段
然后手画一下就会发现,有几段的矩形内部就有几种矩形,所以我们可以枚举一下矩形的大小,然后计算一下当前大小的矩形有多少个即可。
11|0P9232 [蓝桥杯 2023 省 A] 更小的数
11|140 分
首先最简单的方法就是暴力,直接枚举区间然后翻转比较一下
11|2100 分
正解是区间dp
其实我们还是要暴力的枚举区间,我们考虑如何快速判断区间是否合法
我们枚举的区间是
- 如果,则翻转后一定会更小
- 如果,则翻转后一定会更大
- 如果,则是否合法取决于
从小到达枚举区间,然后计算并统计合法区间数量即可
12|0P8756 [蓝桥杯 2021 省 AB2] 国际象棋
这其实算是状压dp的模板题了
从左往右依次放置,因此只考虑右侧的列即可。
假设的位置有马,则都不能放置,因此我要知道当前列是否合法只需要知道上一列和上上一列即可。
因为行很少,我们可以用一个六位二进制数表示一列的情况。
设状态为表示前列累计放置个,且第列状态为、第列状态为,这样只需枚举以及最后三列的状态即可判断是否可以进行转移。
为了方便计算,可以预处理val[x]
表示每种状态下,这一列放置了多少个。
如果(b>>2)&c + (b<<2)&c == 0
成立,则说明第列和第列不冲突。
如果(a>>1)&c + (a<<1)&c == 0
成立,则说明第列和第列不冲突。
如果(b>>2)&a + (b<<2)&a == 0
成立,则说明第列和第列不冲突。
如果val[a]+val[b]+val[c] <= j
,则数量是合法的
如果上述都满足,则有转移f[i][j][b][c] += f[i-1][j-val[c]][a][b]
该说不说,python开数组还是挺抽象的
__EOF__

本文链接:https://www.cnblogs.com/PHarr/p/18034877.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律