蓝桥杯速成刷题清单(上)
一、1.排序 - 蓝桥云课

(快速排序)算法代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
int a[N];int main() {int n;cin >> n;for (int i = 0; i < n; i++) {cin >> a[i];}sort(a, a + n);for (int i = 0; i < n; i++) {cout << a[i] << " ";}cout << endl;for (int i = n - 1; i >= 0; i--) {cout << a[i] << " ";}cout << endl;/*reverse(a,a+n);for (int i = 0; i < n; i++) {cout << a[i] << " ";}*/return 0;
}
二、2.走迷宫 - 蓝桥云课

(BFS)算法代码:
#include <bits/stdc++.h>
using namespace std;int n, m; // 地图大小
int start_x, start_y, end_x, end_y; // 起始点和终点(1-based)
vector<vector<int>> mp; // 地图(0-based)
vector<vector<int>> path_len; // 记录路径长度
typedef pair<int, int> PII;// 四个方向偏移量
const int dx[] = {-1, 1, 0, 0};
const int dy[] = {0, 0, 1, -1};int main() {cin >> n >> m;mp.resize(n, vector<int>(m));path_len.resize(n, vector<int>(m, -1)); // 初始化为-1// 输入地图(按行优先顺序,1-based转换为0-based)for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> mp[i][j];}}// 输入起始点和目标点坐标(1-based)cin >> start_x >> start_y >> end_x >> end_y;// 转换为0-basedstart_x--; start_y--; end_x--; end_y--;queue<PII> q;q.push({start_x, start_y});path_len[start_x][start_y] = 0; // 起点算作1个格子while (!q.empty()) {PII tmp = q.front();q.pop();// 遍历四个方向for (int i = 0; i < 4; i++) {int nx = tmp.first + dx[i];int ny = tmp.second + dy[i];// 检查边界if (nx < 0 || ny < 0 || nx >= n || ny >= m) {continue;}// 检查障碍物和是否已访问if (mp[nx][ny] == 0 || path_len[nx][ny] != -1) {continue;}path_len[nx][ny] = path_len[tmp.first][tmp.second] + 1;q.push({nx, ny});}}// 输出结果(若无法到达则输出-1)cout << path_len[end_x][end_y] << endl;return 0;
}
三、3.小明的背包1 - 蓝桥云课

算法代码:
贪心、但只能通过18.2%:
#include <iostream>
#include <algorithm>
using namespace std;struct Item {int w, v;
};// 定义结构体的比较规则
bool cmp(const Item& a, const Item& b) {if (a.v == b.v) {return a.w < b.w;}return a.v > b.v;
}int main() {int n, V; // 注意这里改为大写的V表示背包容量cin >> n >> V; // 必须先读取n和V的值Item items[105];for (int i = 0; i < n; i++) {cin >> items[i].w >> items[i].v;}// 按价值从大到小来排列sort(items, items + n, cmp);// 从价值最大的物品放入int sum = 0;int remaining = V; // 剩余容量for (int i = 0; i < n; i++) {if (remaining >= items[i].w) {sum += items[i].v;remaining -= items[i].w;}}cout << sum << endl;return 0;
}
动态规划:
#include<bits/stdc++.h>
using namespace std;const int MAXN = 110;
const int MAXV = 1010;int N, V;
int w[MAXN], v[MAXN];
int f[MAXN][MAXV];int main() {cin >> N >> V;for (int i = 1; i <= N; i++) {cin >> w[i] >> v[i];}memset(f, 0, sizeof(f));for (int i = 1; i <= N; i++) {for (int j = 0; j <= V; j++) {f[i][j] = f[i - 1][j];//不放if (j >= w[i])// 背包还有空间{f[i][j] = max(f[i][j], f[i - 1][j - w[i]] + v[i]);}}}cout << f[N][V] << endl;return 0;
}
四、4.蓝桥公园 - 蓝桥云课


(Floyd)算法代码:
#include<bits/stdc++.h>
using namespace std;
using ll =long long;
const int N=500;
ll inf=1e18;
ll n,m,q;
ll d[N][N];
int main()
{cin>>n>>m>>q;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){d[i][j]=inf;}}for(int i=1;i<=n;i++)d[i][i]=0;while(m--){ll u,v,w;cin>>u>>v>>w;d[u][v]=min(d[u][v],w);d[v][u]=min(d[v][u],w); }for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){d[i][j]=min(d[i][j],d[i][k]+d[k][j]);}}}while(q--){int st,ed;cin>>st>>ed;cout<<(d[st][ed]>=inf ? -1 : d[st][ed])<<endl;}return 0;
}
五、5.回文判定 - 蓝桥云课

(字符串、模拟、双指针)算法代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{string s;cin>>s;int left=0;int right=s.size()-1;while(left<right){if(s[left]!=s[right]){cout<<"N"<<endl;return 0;}left++;right--;}cout<<"Y"<<endl;return 0;
}
六、6.小明的彩灯 - 蓝桥云课

(差分)算法代码:

#include <iostream>
#include <vector>
#define int long long
using namespace std;signed main() {int n, q;cin >> n >> q;vector<int> a(n);for (int i = 0; i < n; i++) {cin >> a[i];}vector<int> d(n + 1, 0); // 差分数组,长度为 n+1for (int i = 0; i < q; i++) {int l, r, x;cin >> l >> r >> x;d[l] += x;if (r < n) {d[r + 1] -= x;}}// 对差分数组进行前缀和操作,即可得到每个彩灯的最终亮度for (int i = 1; i <= n; i++) {d[i] += d[i - 1];a[i - 1] += d[i];if (a[i - 1] < 0) {a[i - 1] = 0;}}for (int i = 0; i < n; i++) {cout << a[i] << " ";}cout << endl;return 0;
}
七、7.解立方根 - 蓝桥云课

(二分)算法代码:(只能25%,这个题有问题)
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;const double eps = 1e-8;double cube_root(double x) {double l = 0, r = x;while (r - l > eps) {double mid = (l + r) / 2;if (mid * mid * mid < x) {l = mid;} else {r = mid;}}return l;
}int main() {int T;cin >> T;while (T--) {int x;cin >> x;double ans = cube_root(x);printf("%.3f\n", ans);}return 0;
}
八、10.蓝桥骑士 - 蓝桥云课

(LIS)算法代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {int n;cin >> n;vector<int> a(n);for (int i = 0; i < n; i++) {cin >> a[i];}vector<int> S;for (int i = 0; i < n; i++) {if (S.empty() || a[i] > S.back()) {S.push_back(a[i]);} else {auto it = lower_bound(S.begin(), S.end(), a[i]);*it = a[i];}}cout << S.size() << endl;return 0;
}
九、8.蓝桥幼儿园 - 蓝桥云课


(并查集)算法代码:
#include <iostream>
#include <vector>using namespace std;const int MAXN = 2e5 + 5;int fa[MAXN];// 并查集的查找操作
int find(int x) {if (fa[x] != x) {fa[x] = find(fa[x]);}return fa[x];
}int main() {int n, m;cin >> n >> m;// 初始化每个人的父亲为自己for (int i = 1; i <= n; ++i) {fa[i] = i;}// 处理操作while (m--) {int op, x, y;cin >> op >> x >> y;if (op == 1) {int fx = find(x), fy = find(y);// 将两个人所在的连通分量合并if (fx != fy) {fa[fx] = fy;}} else {int fx = find(x), fy = find(y);// 判断两个人是否在同一个连通分量中if (fx == fy) {cout << "YES" << endl;} else {cout << "NO" << endl;}}}return 0;
}
十、9.蓝桥王国 - 蓝桥云课


(Dijkstra)算法代码:
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
const long long INF = 0x3f3f3f3f3f3f3f3fLL;
const int MAXN = 3e5 + 2;struct Edge {int from, to;long long weight;Edge(int u, int v, long long w) : from(u), to(v), weight(w) {}
};vector<Edge> edges[MAXN];struct Node {int id;long long dis;Node(int i, long long d) : id(i), dis(d) {}bool operator<(const Node& other) const {return dis > other.dis;}
};int n, m;
long long dist[MAXN];void dijkstra() {int start = 1;bool visited[MAXN] = {false};for (int i = 1; i <= n; i++) {dist[i] = INF;visited[i] = false;}dist[start] = 0;priority_queue<Node> pq;pq.push(Node(start, dist[start]));while (!pq.empty()) {Node u = pq.top();pq.pop();if (visited[u.id])continue;visited[u.id] = true;for (int i = 0; i < edges[u.id].size(); i++) {Edge e = edges[u.id][i];if (visited[e.to])continue;if (dist[e.to] > e.weight + u.dis) {dist[e.to] = e.weight + u.dis;pq.push(Node(e.to, dist[e.to]));}}}
}int main() {cin >> n >> m;for (int i = 1; i <= n; i++) {edges[i].clear();}while (m--) {int u, v, w;cin >> u >> v >> w;edges[u].push_back(Edge(u, v, w));}dijkstra();for (int i = 1; i <= n; i++) {if (dist[i] >= INF) {cout << "-1" << " ";} else {cout << dist[i] << " ";}}return 0;
}相关文章:
蓝桥杯速成刷题清单(上)
一、1.排序 - 蓝桥云课 (快速排序)算法代码: #include <bits/stdc.h> using namespace std; const int N 5e5 10; int a[N];int main() {int n;cin >> n;for (int i 0; i < n; i) {cin >> a[i];}sort(a, a n);for …...
力扣第444场周赛
这次力扣周赛对我来说难度确实大, 只做出两题, 但还是想分享一下的做题经验和感受 1. 移除最小数对使数组有序 I 题目链接:力扣 给你一个数组 nums,你可以执行以下操作任意次数: 选择 相邻 元素对中 和最小 的一对。如果存在多个这样的对&a…...
Redis 持久化机制详解:RDB/AOF 过程、优缺点及配置。Redis持久化中的Fork与Copy-on-Write技术解析。
Redis 持久化机制详解:RDB/AOF 过程、优缺点及配置 一、RDB 持久化过程及特性 核心机制 生成快照:通过 fork 子进程生成内存数据的二进制快照文件(.rdb),父进程继续处理请求。写时复制(Copy-On-Write&…...
Go并发背后的双引擎:CSP通信模型与GMP调度|Go语言进阶(4)
为什么需要理解CSP与GMP? 当我们启动一个Go程序时,可能会创建成千上万个goroutine,它们是如何被调度到有限的CPU核心上的?为什么Go能够如此轻松地处理高并发场景?为什么有时候我们的并发程序会出现奇怪的性能瓶颈&…...
docker内安装达梦8数据库
1. 其他机器上实现挂载ISO # 1. 确保挂载点目录存在(你已经创建了dm8目录) ls -ld dm8# 2. 使用正确的mount命令挂载ISO sudo mount -o loop dm8_20250117_HWarm920_kylin10_sp1_64.iso dm8# 3. 验证是否挂载成功 mount | grep dm8 ls dm82. docker内运…...
UDP怎么样实现可靠传输?
如果需要在基于UDP的应用中实现可靠传输(例如确保数据不丢失、按顺序到达等),通常需要在应用层实现相应的机制。 1. 确认应答机制 应用层可以使用确认应答机制来确保数据的可靠传输。当发送方发送一个数据包时,接收方收到数据包…...
代码随想录算法训练营Day25
一、力扣93.复原IP地址【medium】 题目链接:力扣93.复原IP地址 left x300 视频链接:代码随想录 1、思路 时间复杂度: O ( n ) O(n) O(n) 2、代码 class Solution:def restoreIpAddresses(self, s: str) -> List[str]:n len(s)ans []…...
Linux服务器——Samba服务器
简介 Samba 是一个开源的跨平台文件共享服务,允许 Linux/Unix 系统与 Windows 系统实现文件和打印机的共享与互操作。其核心协议为 SMB/CIFS(Server Message Block / Common Internet File System),是 Windows 网络中…...
华为网路设备学习-17
目录 一、加密算法 二、验证算法 三、IPsec协议 1.IKE协议(密钥交换协议) ①ISAKMP(Internet Security Association and Key Management Protocol)互联网安全关联和密钥管理协议 ②安全关联(SA) ③…...
各开源协议一览
在 GitHub 上,开源项目通常会使用一些常见的开源协议来定义项目的使用、修改和分发规则。以下是目前 GitHub 上最常见的几种开源协议及其差异和示例说明: TL;DR 协议宽松程度是否强制开源专利保护适用场景MIT最宽松否无希望代码被广泛使用Apache 2.0宽松…...
解决python manage.py shell ModuleNotFoundError: No module named xxx
报错如下: python manage.py shellTraceback (most recent call last):File "/Users/z/Documents/project/c/manage.py", line 10, in <module>execute_from_command_line(sys.argv)File "/Users/z/.virtualenvs/c/lib/python3.12/site-packa…...
机器学习12-集成学习-案例
参考 【数据挖掘】基于XGBoost的垃圾短信分类与预测 【分类】使用XGBoost算法对信用卡交易进行诈骗预测 银行卡电信诈骗危险预测(LightGBM版本) 【数据挖掘】基于XGBoost的垃圾短信分类与预测 基于XGBoost的垃圾短信分类与预测 我分享了一个项目给你《【数据挖掘】基于XG…...
使用Ubuntu18恢复群晖nas硬盘数据外接usb
使用Ubuntu18恢复群晖nas硬盘数据外接usb 1. 接入硬盘2.使用Ubuntu183.查看nas硬盘信息3. 挂载nas3.1 挂载损坏nas硬盘(USB)3.2 挂载当前运行的nas 4. 拷贝数据分批传输 5. 新旧数据对比 Synology NAS 出现故障,DS DiskStation损坏,则可以使用计算机和 U…...
微服务系统记录
记录下曾经工作涉及到微服务的相关知识。 1. 架构设计与服务划分 关键内容 领域驱动设计(DDD): 利用领域模型和限界上下文(Bounded Context)拆分业务,明确服务边界。通过事件风暴(Event Storm…...
【数据库原理及安全实验】实验二 数据库的语句操作
目录 指导书原文 实操备注 指导书原文 【实验目的】 1) 掌握使用SQL语言进行数据操纵的方法。 【实验原理】 1) 面对三个关系表student,course,sc。利用SQL语句向表中插入数据(insert),然后对数据进行delete&…...
python 微信小程序支付、查询、退款使用wechatpy库
首先使用 wechatpy 库,执行以下命令进行安装 pip install wechatpy 1、 直连商户支付 import logging from django.http import JsonResponse from django.views.decorators.http import require_http_methods from wechatpy.pay import WeChatPay from wechatpy.…...
蓝桥杯备赛学习笔记:高频考点与真题预测(C++/Java/python版)
2025蓝桥杯备赛学习笔记 ——高频考点与真题预测 一、考察趋势分析 通过对第13-15届蓝桥杯真题的分析,可以发现题目主要围绕基础算法、数据结构、数学问题、字符串处理、编程语言基础展开,且近年逐渐增加动态规划、图论、贪心算法等较难题目。 1. 基…...
【BFT帝国】20250409更新PBFT总结
2411 2411 2411 Zhang G R, Pan F, Mao Y H, et al. Reaching Consensus in the Byzantine Empire: A Comprehensive Review of BFT Consensus Algorithms[J]. ACM COMPUTING SURVEYS, 2024,56(5).出版时间: MAY 2024 索引时间(可被引用): 240412 被引:…...
Linux-CentOS-7—— 配置静态IP地址
文章目录 CentOS-7——配置静态IP地址VMware workstation的三种网络模式配置静态IP地址1. 编辑虚拟网络2. 确定网络接口名称3. 切换到网卡所在的目录4. 编辑网卡配置文件5. 查看网卡文件信息6. 重启网络服务7. 测试能否通网8. 远程虚拟主机(可选) 其他补…...
Jupyter Lab 无法启动 Kernel 问题排查与解决总结
📄 Jupyter Lab 无法启动 Kernel 问题排查与解决总结 一、问题概述 🚨 现象描述: 用户通过浏览器访问远程服务器的 Jupyter Lab 页面(http://xx.xx.xx.xx:8891/lab)后,.ipynb 文件可以打开,但无…...
算法训练之位运算
♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...
linux入门三:Linux 编辑器
一、轻量级编辑器:快速上手的首选 1.1 Leafpad:极简主义的轻量之选 核心特点 轻量快速:体积小、启动快,资源占用极低,适合低配设备或快速编辑简单文件。 无复杂功能:仅支持基础文本编辑,界面…...
C++设计模式+异常处理
#include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory> #include <stdexcept> // 包含异常类using namespace std;// 该作业要求各位写一…...
HttpServletRequest是什么
HttpServletRequest 是 Java Servlet API 中的一个接口,表示 HTTP 请求对象。它封装了客户端(如浏览器)发送到服务器的请求信息,并提供了访问这些信息的方法。 1. 基本概念 作用: HttpServletRequest 提供了一种机制&…...
checkra1n越狱出现的USB error -10问题解决
使用checkra1n进行越狱是出现: 解决办法(使用命令行进行越狱): 1. cd /Applications/checkra1n.app/Contents/MacOS 2. ./checkra1n -cv 3. 先进入恢复模式 a .可使用爱思助手 b. 或者长按home,出现关机的滑条,同时按住home和电源键&#…...
golang-defer延迟机制
defer延迟机制 defer是什么 defer是go中一种延迟调用机制。 执行时机 defer后面的函数只有在当前函数执行完毕后才能执行。 执行顺序 将延迟的语句按defer的逆序进行执行,也就是说先被defer的语句最后被执行,最后被defer的语句,最先被执…...
【小沐学Web3D】three.js 加载三维模型(Angular)
文章目录 1、简介1.1 three.js1.2 angular.js 2、three.js Angular.js结语 1、简介 1.1 three.js Three.js 是一款 webGL(3D绘图标准)引擎,可以运行于所有支持 webGL 的浏览器。Three.js 封装了 webGL 底层的 API ,为我们提供了…...
一种替代DOORS在WORD中进行需求管理的方法 (二)
一、前景 参考: 一种替代DOORS在WORD中进行需求管理的方法(基于WORD插件的应用)_doors aspice-CSDN博客 二、界面和资源 WORD2013/WORD2016 插件 【已使用该工具通过第三方功能安全产品认证】: 1、 核心功能 1、需求编号和跟…...
一个基于ragflow的工业文档智能解析和问答系统
工业复杂文档解析系统 一个基于ragflow的工业文档智能解析和问答系统,支持多种文档格式的解析、知识库管理和智能问答功能。 系统功能 1. 文档管理 支持多种格式文档上传(PDF、Word、Excel、PPT、图片等)文档自动解析和分块处理实时处理进度显示文档解析结果预览批量文档…...
23种设计模式-行为型模式-访问者
文章目录 简介场景解决完整代码核心实现 总结 简介 访问者是一种行为设计模式,它能把算法跟他所作用的对象隔离开来。 场景 假如你的团队开发了一款能够使用图像里地理信息的应用程序。图像中的每个节点既能代表复杂实体(例如一座城市)&am…...
