【第十六届蓝桥杯省赛】比赛心得与经验分享(PythonA 组)
文章目录
- 一、我的成绩
- 二、我的备赛经历
- 三、如何备赛(个人观点)
- 1. 基础语法
- 2. 数据结构
- 3. 算法
- 4. 数学
- 四、做题技巧与注意事项
- 五、我的题解
- 试题A 偏蓝 🏆100%
- 试题B IPV6 🏆0%
- 试题C 2025图形 🏆100%
- 试题D 最大数字 🏆100%
- 试题E 倒水 🏆10%
- 试题F 拼好数 🏆40%
- 试题 G 登山 🏆15%
- 试题H 原料采购 🏆20%
- 五、结语
一、我的成绩
这是我第一次参加蓝桥杯,很高兴的是最后的成绩是省一等奖。在这里我想把我的经验分享给要参加蓝桥杯的其他同学们,也算是对我这段时间学习的一个总结。
(acmer 可以划走了,报名就送国一)
二、我的备赛经历
如果你还在因为实力不足而纠结到底报不报蓝桥杯的话,我的答案是:报就完事儿了。
我是一个大一的小菜鸡,进入大学之前没接触过编程,大一上学期也只学了一下 C 语言。当时听说有蓝桥杯比赛,想着大学里面至少也得拿个什么比赛的奖吧,就报名了。当时听学长说 Python 组比较好拿奖,因此就报名了 Python 组。
到了25年放寒假的时候,我在年前(大概 1 月中下旬左右)花了 5 天时间把 Python 的语法全部过了一遍,年后(2月份)开始学习基础的数据结构(顺序表、链表、栈、队列、二叉树等)。然后开始在力扣上刷算法题,不刷不知道,一刷吓一跳,最简单的基础题我甚至可以做到毫无思路,当评论区的大佬都在嘲讽“这也能算一个题”的时候,我正坐在电脑前苦思冥想。每天刷题的心路历程就是“刷题——>不会——>看题解——>if 看得懂:感叹大佬nb,else:崩溃——>下一道题”。当时挫败感非常强,不过我也只能每天不断练习和积累。
我刷 Python 题最大的感受就是:Python 库函数简直太多了…几乎我每刷一道题看题解的时候都能看到一个新的函数,比如 enumerate
、reduce
、map
等等。于是我专门建立了一个新的 markdown 文本写我的刷题笔记,不断积累。
到了 3 月份我开始系统地学习算法,从最简单的双指针、前缀和到 dfs、bfs 再到稍微复杂一点的动态规划、贪心等等。起初我还边学边写博客,后来发现这样好像时间不太够了,毕竟 4 月份就要比赛了(哀),所以我在后面的学习中主要以刷题为主。通过我逐步学习算法,我也能感受到自己的进步。从做开始力扣上简单题无从下手——>简单题也不过如此——>中等题我跟你拼了——>中等题你难不倒我——>困难题初探——>在别人的思路带领下完成困难题——>自己独立完成困难题。当你真正自己独立完成一道高难度的题的时候那种成就感与喜悦是任何东西都无法比拟的。我还记得我有一次花了一个半小时自己独立写出来了一道某年国赛真题,好像叫路径之谜。谁懂通过100% 弹出来那一刻的救赎感!
从备考到 4 月份比赛为止,我一共在力扣上刷了 200+ 道题,也在蓝桥杯官网上练了不少真题。其实我在刷真题之前已经学习了不少算法,也在力扣上刷了不少算法题,但是我做往年的题目的时候发现我还是不会做 (?),这就很尴尬了。一部分原因我总结的是力扣的题题干都非常简洁直白,基本上思考一下就知道它考的是什么算法,但是像洛谷、蓝桥杯这样的题都是有一个特殊的情景,你需要透过现象看本质去挖掘出它到底要考什么,这一点是很重要的我觉得。再其次就是做不出来也完全没关系,不会的题思考了一定的时间之后就去看题解,把大佬们的经验技巧积累下来。做题都是一个不断历练的过程,欲问青云路,先叩荆棘门。并且蓝桥杯是一个很好拿奖的比赛,基本上只要你有十来分就有奖。
之后到了 4 月份就比赛了,我是线上参赛,要求双机位监考,只能使用指定的 IDE 编写代码(Python 是 IDLE,C++ 是 dev),草稿纸也是自己准备。从上午 9:00 比赛开始到下午的 13:00 一共 4 个小时。所以尽量前一天就把官方要求的配置都配好了然后第二天起床就开干。
考试之后大约两周多一点出的成绩。
三、如何备赛(个人观点)
1. 基础语法
首先我觉得无论是什么语言,都应该先把最基础的语法学好,毕竟有了语法基础才能更好地去写代码。这里我觉得我没有做的很好,因为我过 Python 基础语法过的比较快,学的不够扎实,导致我在开始做算法题的时候有一部分时间都在查语法…
2. 数据结构
其次是数据结构,都说 程序 = 数据结构 + 算法,数据结构是一个容器,我们想要解决一个问题通常要选择恰当的容器再选择一个合适的算法去解决。所以数据结构是必不可少的。下面我列举了一个我认为比较重要的数据结构。(这里只是我在做题的时候总结出来的可能用的比较多的,不一定准确)
T0 级别:
- 栈、队列、字符串、堆 (优先队列)、哈希表、并查集
T1 级别:
- 单调栈、单调队列、树、图、线段树
3. 算法
算法是解决一道题的核心,通过我刷题的经验以及看了其他大佬的总结然后我梳理了以下比较重要的算法。(如有任何遗漏或不妥,还请大佬指出)
T0 级别(基础):
- 暴力,暴力,还是暴力!:其实严格来说它不是一个算法,但是蓝桥杯经常被调侃说是暴力杯就是因为它有很多题目都是可以通过暴力求解的方式来 AC 的。只要你会写循环,你就能拿奖!
- 模拟:这个本质上是在锻炼你的代码能力,就是题目要求你干啥你就干啥,并且这个算法也不需要系统地去学习,掌握语法和基本的数据结构之后就可以去刷,我建议这个可以多刷。
- 双指针、滑动窗口、前缀和、差分、位运算、二分、递归、分治。
- DFS:基础的 DFS 需要掌握二叉树的前、中、后序遍历方式。
- BFS:基础的 BFS 需要掌握二叉树的层序遍历。
T0 级别(进阶):
(下面给出的经典习题没有特别说明均来自力扣)
动态规划:好像往年蓝桥杯被说是 dp 杯来着,dp 就是动态规划,也是蓝桥杯很喜欢的一个算法。我个人觉得学动态规划不要从背包问题开始学,这样容易崩溃。可以从简单的线性dp开始学起,这个比背包问题简单多了,只要你认真去学一定能学好。之后就是子数组、子序列、回文串、两个数组dp之类相关的问题。把动态规划基本了解了之后再去学背包问题就会轻松很多。背包问题优先学习 01背包和完全背包,然后是二维费用的背包。
经典习题:
- 简单一维dp:斐波那契数、爬楼梯…
- 简单二维dp:不同路径、不同路径Ⅱ、最小路径和…
- 子序列问题:最长递增子序列…
- 回文串问题:最长回文串、回文串分割…
- 两个数组dp:最长公共子序列…
- 01 背包、完全背包(这俩在牛客上有模板题)
回溯与剪枝(DFS):我个人觉得这是我学起来比较抽象的算法,因为回溯是靠递归实现的,而递归本身就比较难理解,我最大的感受就是:不要总是去关心递归里面到底怎么深入的,要不然会把你绕晕。把递归想象成一个黑盒,你把任务交给这个黑盒,相信这个黑盒一定能完成任务的。
经典习题:全排列、八皇后、解数独…
BFS:稍微进阶一点的 BFS 包括边权为 1 的最短路问题、Floodfill 问题、多源 BFS 和拓扑排序。
**经典习题:**01矩阵、岛屿数量、课程表…
贪心:我个人感觉贪心是一个神奇的算法,有些贪心题你根据常识就能轻松想得到,有些贪心题就算你刷了 100 到贪心题你还是可能毫无思路。这个算法我觉得吧,还是多积累,积累贪心策略。
经典习题:最大数、最长递增子序列(贪心 + 二分)、优势洗牌(田忌赛马)、合并区间(区间问题)…
T1 级别:
- 图论:Dijkstra、Floyed、Kruskal、Prim、SPFA、最小生成树…
- 动态规划:学有余力可以再去学多重背包、混合背包等等。再然后有时间可以去学学区间dp,树形dp、状压dp…
- 排序:并不是说排序没那么重要,只是我觉得就参加比赛来说,能用库中的排序就足够了,不需要我们手写。但是从长远的角度来看,排序算法本身非常重要,需要掌握基本的 7 大排序。
T2 级别:
- 字符串相关算法:kmp、马拉车、字符串hash、字典树…
- 高精度
- …
4. 数学
感觉蓝桥杯前几道题就很喜欢考数学和思维相关的东西。
T0 级别:
- 唯一分解定理、素数筛、快速幂、gcd、lcm、组合数学…
T1 级别:
裴蜀定理、欧拉函数、费马小定理、逆元、扩展欧几里得算法、中国剩余定理、扩展中国剩余定理、欧拉定理、扩展欧拉定理、高斯消元、矩阵快速幂…
别看上面这么多,其实它们很多都是互相关联的,比如费马小定理可以用于求解逆元,扩展欧几里得算法涉及到裴蜀定理和逆元,中国剩余定理又涉及到扩展欧几里得算法…
T2 级别:
- 计算几何、博弈…
四、做题技巧与注意事项
其实是骗分技巧
- 不要老想着一定要用某某算法去解题,用暴力不是什么可耻的事情,大胆去写循环就完事儿了,蓝桥杯是按通过的测试样例数量来给分的,只要你有样例过了,就有分。
- 遇到不会做的题没关系,如果这道题明确说明了无解的情况要输出 -1 的话,那么你可以直接打印一个-1(
print(-1)
),这样能骗不少分。- 如果没有说要输出 -1,你可以打印一个随机值。比如 Python 的话就
import random
然后调用对应的函数打印一个随机值。你别看这样希望很渺茫,这个命中的概率真不小(我也不知道原理是什么)。- 一些找规律的题不妨通过打表的方式来摸索答案。就是说把一定范围内的答案枚举出来,然后肉眼观察有什么规律。
- 正式比赛填空题直接交数字,不要
printf
不要cout
。但是 OJ 上做题的时候要用输出语句。- C/C++ 组的同学记得在 main 函数中加上 return 0,我在有些评论区经常看到有些人忘记加了然后痛苦哀嚎。
- (如果还有其他的还请大佬们补充)
五、我的题解
试题A 偏蓝 🏆100%
思路:枚举
这个题比较简单,就是通过循环把所有情况全部枚举出来然后用一个变量记录结果即可。
ans = 0
for k in range(1, 256):for i in range(0, k):for j in range(0, k):ans += 1
print(ans)
最终答案是 5559680,在正式比赛的时候只交这个数字即可。
试题B IPV6 🏆0%
恕我直言,我都没怎么读懂题意,当时做这道题的时候想了 5 分钟完全没思路就直接跳过了,到最后也没做出来,还好是个填空题。但好像可以用 dp (?)
试题C 2025图形 🏆100%
思路:
这道题也简单,由于数据范围比较小我就直接先打印了一串 2025 然后每行截取一段即可。
st = '2025' * 100 # 其实这里都用不着 100 个 2025, 最少是 50 个
h, w = map(int, input().split())
for i in range(h):print(st[i:i + w])
试题D 最大数字 🏆100%
思路:贪心 + 排序
题目意思就是把 1~n 之间的数转换成二进制然后拼接起来组成一个最大的二进制数然后返回它的十进制。比如 3,那么 1~3 这些数转换成二进制就是 1、10、11,把他们拼接在一起组成的最大二进制数就是 11110,对应十进制就是 30。
这个题和力扣上的 “最大数” 的思路几乎一样,由于这个题我记忆犹新,所以在做题的之后马上就反应出来了hhh,所以我说贪心要不断积累贪心策略。首先把 1~n 之间的所有数转换成 2 进制之后,然后开始贪心。这里的贪心策略就是如果 ab (b 拼接在 a 后面) 组成的数字比 ba (a 拼接在 b 后面) 组成的数字大的话,那么最终的二进制数中 a 一定要放在 b 的前面。比如说 100 和 11,11100 明显比 10011 大,所以在最终我们组成的最大二进制数中 11 就要排在 100 的前面。
这里就产生了一种新的排序规则,我们平时排序比如说升序,就是小的放前面大的放后面,现在就需要根据我们上面这样的新的规则进行排序。如何依照这样的规则进行排序就可以用到 cmp_to_key
,你需要自己实现这个规则然后传给这个函数他就会根据你的规则进行排序。
import sys
import functools
sys.set_int_max_str_digits(0) # 由于组成的数字很大,所以把int设置为无上限n = int(input())
a = [bin(x) for x in range(1, n + 1)] # 把 1~n 所有数字转化成 2 进制然后存储在列表中
def cmp(a, b): # 重写排序规则return -1 if a + b > b + a else 1 # 这里的规则就是我上面所说的
a = [x[2:] for x in a] # 把二进制数前面两位无关的符号去掉,只保留数字
a.sort(key = functools.cmp_to_key(cmp)) # 排序
print(int(''.join(a), 2))
试题E 倒水 🏆10%
唉,做题做的太少了,都没想到二分,当时还在思考这到底要考啥,暴力也没暴出个名堂。罢了,打印个随机值溜了。
import random
n, k = map(int, input().split())
water = list(map(int, input().split()))
t = sum(water) // nprint(random.randint(1, t))
这样在洛谷的 10 个测试用例中还对了一个,不知道蓝桥杯那边的测试用例怎么样。
试题F 拼好数 🏆40%
疑似出题人吃完拼好饭吃多了出的题。这题还是做了挺久的,我当时个人的想法是贪心,先把每个数中 6 的次数统计出来放到列表中并排升序,然后如果 6 的出现次数大于等于 6 就单独成一组,统计一个次数。接着如果能两个一组就两个一组,不能再三个一组。赛后重新看到数据范围——原来是枚举…
在洛谷上测评只拿了 40% 的分。
n = int(input())
arr = input().split()
target = [x.count('6') for x in arr]
ret = 0
target.sort()
left_1, left_2, right = 0, 1, n - 1
while right >= 0 and target[right] >= 6:right -= 1ret += 1
while left_2 < right:if target[left_1] + target[right] >= 6:ret += 1left_1 += 1left_2 += 1right -= 1elif target[left_1] + target[left_2] + target[right] >= 6:ret += 1left_1 += 2left_2 += 2right -= 1else:left_1 += 1left_2 += 1
if left_1 < right:if target[left_1] + target[right] >= 6:ret += 1
print(ret)
枚举的思路如下:
对于 6:单独一组
对于 5:可以匹配 1, 2, 3, 4, 5
对于 4:可以匹配(1, 1), 2, 3, 4, 5
对于 3:可以匹配(2, 1),3
对于 2:可以匹配(2, 2)
最后再加上(3, 2, 2)
优先级从上到下从左往右依次递减。
试题 G 登山 🏆15%
这题我只能想到暴力了,就纯模拟。遇到一个点我就往上下左右走去更新最大值。测试用例 AC 了 15%(我前段时间测还 30% 来着),小部分 WA,其他全是 TLE。
下面展示一下我那不堪入目代码。
n, m = map(int, input().split())
mount = [[]] * ndef get_max1(x, y):a, b = mount[x][y], mount[x][y]for i in range(x + 1):a = max(a, mount[i][y])for j in range(y + 1):b = max(b, mount[x][j])return max(a, b)def get_max2(x, y, n, m):max_num1, max_num2 = mount[x][y], mount[x][y]a, b = mount[x][y], mount[x][y]for i in range(x, n):if mount[i][y] > mount[x][y]:max_num1 = mount[i][y]if mount[i][y] < mount[x][y]:a = max_num1for j in range(y, m):if mount[x][j] > mount[x][y]:max_num2 = mount[x][j]if mount[x][j] < mount[x][y]:b = max_num2return max(a, b)for i in range(n):mount[i] = list(map(int, input().split()))
for i in range(n):for j in range(m):max1 = get_max1(i, j)max2 = get_max2(i, j, n, m)mount[i][j] = max(max1, max2)
ret = sum(map(sum, mount)) / (n * m)
print(f"{ret:.6f}")
试题H 原料采购 🏆20%
开始我还想用背包做来着,后来发现不对劲,然后做了半天也没做出来,不管了,直接 print(-1)
走人。还可以骗 20% 的分。
print(-1)
唉,只能说能力还是太差了,稍微套个壳子或者上点难度就不会做了,之后还得多练习。这样算下来可能就 35+ 分左右,如果蓝桥杯官方那边的数据水一点可能能上 40 分。
五、结语
无论怎么样吧,最后我想说,参加蓝桥杯以及其他算法比赛的意义远不止争夺奖项,它更是一个促进你学习进步的一种动力来源。比赛中收获的不仅仅是技术的提升,更是解决问题时的韧性与思维方式。这些恰恰都是书本和课程中无法传授给你的能力,也是未来职场竞技中真正的护城河。
相关文章:
【第十六届蓝桥杯省赛】比赛心得与经验分享(PythonA 组)
文章目录 一、我的成绩二、我的备赛经历三、如何备赛(个人观点)1. 基础语法2. 数据结构3. 算法4. 数学 四、做题技巧与注意事项五、我的题解试题A 偏蓝 🏆100%试题B IPV6 🏆0%试题C 2025图形 🏆100%试题D 最大数字 &am…...
解决Maven项目中报错“java不支持版本6即更高的版本 7”
错误背景 当Maven项目编译或运行时出现错误提示 Java不支持版本6即更高的版本7,通常是由于项目配置的JDK版本与当前环境或编译器设置不一致导致的。例如: 项目配置的Java版本为6或7,但实际使用的是JDK 17。Maven或IDE的编译器未正确指定目标…...
MySQL--索引入门
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 Mysql在存储数据之外,数据库系统各种还维护着满足特定查找算法的数据结构,这些数据结构以某种引用(指向)表中的数据…...
【网络原理】深入理解HTTPS协议
本篇博客给大家带来的是网络原理的知识点, 由于时间有限, 分三天来写, 本篇为线程第三篇,也是最后一篇. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动…...
利用Elixir中的原子特性 + 错误消息泄露 -- Atom Bomb
题目信息: This new atom bomb early warning system is quite strange… 题目使用 elixir 语言 一开始,我们会访问 /page.html <!DOCTYPE html> <!-- 设定文档语言为英语 --> <html lang"en"> <head><!-- 设定字符编码为UTF-8 --><…...
机器人--STM32
STM32启动模式 1,从主闪存存储启动器启动(默认) 2,从系统存储启动器启动 下载程序时需要使用的启动方式。 3,从内置的SRAM启动...
LVGL -文本显示 英文、中文
1 文本 在 LVGL 中,文本控件(Label)是一种基本的 UI 组件,用于显示文本信息。文本控件可以用于各种场景,如显示状态信息、提示消息、标题等。在图形用户界面(GUI)开发中,文本是传达信息和指导用户的重要组成部分。为了有效地展示文本,以下是与文本相关的几个关键方面…...
Java面试资源获取
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 **1. GitHub开源项目****2. 技术博客与社区*…...
探索 Spring AI 的 ChatClient API:构建智能对话应用的利器
探索 Spring AI 的 ChatClient API:构建智能对话应用的利器 前言 在当今人工智能蓬勃发展的时代,智能对话系统成为了众多应用的核心组成部分。无论是客服机器人、智能助手还是聊天应用,都离不开高效、灵活的对话处理能力。Spring AI 作为 S…...
Java大师成长计划之第11天:Java Memory Model与Volatile关键字
📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4o-mini模型辅助创作完成,旨在提供灵感参考与技术分享,文中关键数据、代码与结论建议通过官方渠道验证。 在多线程编程中,线程的执…...
java学习之数据结构:一、数组
主要是对数组所有的东西进行总结,整理 适合小白~ 目录 1.什么是数组 1.1数组定义 1.2数组创建 1)静态创建 2)动态创建 1.3数组遍历 1)for和while遍历 2)foreach遍历 2.数组越界问题及解决 2.1数组越界问题 2…...
Oracle OCP认证考试考点详解083系列04
题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 16. 第16题: 题目 解析及答案: 关于使用恢复管理器(RMAN)恢复表,以下哪三项是…...
MARM:推荐系统中的记忆增强突破
文章目录 1. 背景1.1 模型规模与推荐系统的挑战1.2 缓存技术在推荐系统中的潜力1.3 推荐系统中的数据与计算需求1.4 复杂度对比1.5 MARM模型的创新性 2. 方法2.1 流程2.1.1 序列生成器2.1.2 外部缓存查找2.1.3 多目标注意力机制2.1.4 发结果到缓存 **2.2 MARM与SIM**2.2.1 SIM的…...
INP指标
什么是INP(Interaction to Next Paint) 参考网站:webVital-INP文档 定义与核心目标 INP 是一项稳定的 Core Web Vitals 指标,通过统计用户访问期间所有符合条件的互动约定时间,评估网页对用户操作的总体响应能力。最…...
Flink 的状态机制
在实时流处理领域,状态管理是构建复杂业务逻辑的核心能力。Apache Flink 通过统一的状态抽象和高效的容错机制,为开发者提供了从毫秒级窗口聚合到 TB 级历史数据关联的全场景支持。本文将深入剖析 Flink 状态机制的底层原理,结合实际案例展示…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】1.1 数据库核心概念与PostgreSQL技术优势
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 深度解析PostgreSQL核心架构与技术优势:从数据库原理到实战场景1.1 数据库核心概念与PostgreSQL技术优势1.1.1 关系型数据库核心架构解析1.1.1.1 数据库系统的底…...
linux下,ollama会把模型文件保存在哪里?
文章目录 运行ollama,有两种形式,估计得分开讨论首先是使用自动启动的ollama:先跑个“小一点的大模型”但是现在模型文件存在哪儿呢?运行ollama,有两种形式,估计得分开讨论 我们用两种方式,来运行ollama。 首先是使用自动启动的ollama: ps -aux | grep ollama系统自…...
EMMC存储性能测试方法
记于 2022 年 9 月 15 日 EMMC存储性能测试方法 - Wesley’s Blog 参考Android-emmc性能测试 | 一叶知秋进行实践操作 dd 命令 页面缓存 为了测试 emmc 的真实读写性能,我们需要先把页面缓存给清理: echo 1 > /proc/sys/vm/drop_caches console:…...
19. LangChain安全与伦理:如何避免模型“幻觉“与数据泄露?
引言:当AI成为企业"数字员工"时的责任边界 2025年某金融机构因AI客服泄露用户信用卡信息被罚款2300万美元。本文将基于LangChain的安全架构与Deepseek-R1的合规实践,揭示如何构建既强大又安全的AI系统。 一、AI安全风险矩阵 1.1 2025年最新威…...
5月3日日记
上午睡到自然醒(其实六点多被我爸叫起来抢火车票,发现明天中午的软卧候补上了,挺好的)然后继续睡到快10点。 中午吃的什么来着,好像是西红柿炒鸡蛋和藜麦饭,有个鱼不是很想吃就没吃 中午打了两把吃鸡&…...
C++类_构造函数
在 C11 里,类的构造函数有多种类型,下面为你详细介绍各类构造函数并给出示例代码。 1. 默认构造函数 默认构造函数是没有参数的构造函数,要是没有为类定义任何构造函数,编译器会自动生成一个默认构造函数。 2. 带参数的构造函数…...
【React】Hooks useReducer 详解,让状态管理更可预测、更高效
1.背景 useReducer是React提供的一个高级Hook,没有它我们也可以正常开发,但是useReducer可以使我们的代码具有更好的可读性,可维护性。 useReducer 跟 useState 一样的都是帮我们管理组件的状态的,但是呢与useState不同的是 useReducer 是集…...
Runnable组件重试机制降低程序错误率
一、LangChain 重试机制深度解析 当构建生产级AI应用时,with_retry() 机制可有效提升系统容错性,典型应用场景包括: API调用频率限制时的自动恢复模型服务临时不可用的故障转移网络波动导致的瞬时异常处理 参数详解与配置策略 1. 参数配置…...
纹理过滤方式和纹理包裹方式
纹理过滤方式 纹理过滤方式有临近过滤(Nearest)和双线性插值过滤(Linear),什么时候用什么过滤方式其实看个人选择,区别就是临近过滤是当需要的像素大于图片像素时候,一些像素点需要复用与他相近…...
55.[前端开发-前端工程化]Day02-包管理工具npm等
包管理工具详解 npm、yarn、cnpm、npx、pnpm 1 npm包管理工具 代码共享方案 包管理工具npm 2 package配置文件 npm的配置文件 方式二 常见的配置文件 常见的属性 常见的属性 常见的属性 依赖的版本管理 常见属性 npm install 命令 项目安装 3 npm install原理 npm instal…...
Maven安装配置以及Idea中的配置教程
一、下载Maven 我使用的是3.9.9的版本: 下载地址:Download Apache Maven – Maven 二、安装 将下载好的Maven压缩包解压到一个路径不包含中文的文件夹: 三、配置环境变量 以win11系统为例: 1.鼠标右键此电脑->属性->…...
【JavaScript】性能优化:打造高效前端应用
文章目录 一、执行效率优化(关键路径优化)1.1 算法时间复杂度控制1.2 Web Workers多线程计算二、内存管理(避免内存泄漏)2.1 定时器清理2.2 DOM引用释放三、DOM操作优化(渲染性能)3.1 批量DOM更新3.2 读写分离策略四、网络传输优化(加载性能)4.1 代码分割(Dynamic Imp…...
【C语言练习】018. 定义和初始化结构体
018. 定义和初始化结构体 018. 定义和初始化结构体1. 定义结构体示例1:定义一个简单的结构体输出结果2. 初始化结构体示例2:在声明时初始化结构体输出结果示例3:使用指定初始化器初始化结构体(C99及以上标准支持)输出结果3. 结构体数组示例4:定义和初始化结构体数组输出结…...
Three.js支持模型格式区别、建议
在 Three.js 中,3D 模型的种类和格式非常多样,每种格式都有其适用场景和优缺点。以下是常见的 Three.js 支持的模型格式、它们的区别、使用建议及推荐。 在这里推荐免费的blender工具,免费、占用空间不大,而且好用,前端打开模型时使用不错,或者有自己想做的模型也可以用它…...
JavaScript基础-流程控制概念
在JavaScript编程中,掌握如何控制程序的执行流程是编写功能强大、逻辑清晰代码的关键。流程控制语句允许我们根据不同的条件执行不同的代码块,或者重复执行某些操作,从而实现复杂的功能逻辑。本文将详细介绍JavaScript中的几种主要流程控制结…...
PowerBI企业运营分析——多维度日期指标分析
PowerBI企业运营分析——多维度日期指标分析 欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。 通过整合多源数据、实时监控关键指标,该平台能够精准分析业务表现,快速识别问题与机会…...
施磊老师rpc(三)
文章目录 mprpc框架项目动态库编译框架生成动态库框架初始化函数-文件读取1. 为什么要传入 argc, argv2. 读取参数逻辑3. 配置文件设计 init部分实现 mprpc配置文件加载(一)配置文件加载类成员变量主要方法**src/include/mprpcconfig.h** 配置文件**bin/test.conf** 实现配置文…...
k8s 探针
Kubernetes 中的探针(Probes)用于检测容器的健康状态或就绪状态,确保应用在运行时的可靠性。Kubernetes 提供三种探针类型,它们的核心区别在于用途和失败后的处理逻辑。以下是它们的详细说明和对比: 1. 启动探针&…...
MIT6.S081-lab8
MIT6.S081-lab8 1. Large files 从 lecture 我们可以知道,我们目前的单个文件的最大大小很小,这是因为我们能够索引的索引块范围很小,实际上,目前的索引只有直接索引和一级索引,而这个实验就是需要我们去实现二级索引…...
【RabbitMQ】 RabbitMQ快速上手
文章目录 一、RabbitMQ 核心概念1.1 Producer和Consumer2.2 Connection和Channel2.3 Virtual host2.4 Queue2.5 Exchange2.6 RabbitMQ工作流程 二、AMQP协议三 、web界面操作4.1 用户相关操作4.2 虚拟主机相关操作 四、RabbitMQ快速入门4.1 引入依赖4.2 编写生产者代码4.2.1 创…...
使用Rust + WebAssembly提升前端渲染性能:从原理到落地
一、问题背景:为什么选择WebAssembly? 最近在开发数据可视化大屏项目时,我们遇到了一个棘手的问题:前端需要实时渲染10万数据点的动态散点图,使用纯JavaScript Canvas方案在低端设备上帧率不足15FPS。经过性能分析&a…...
【quantity】9 长度单位模块(length.rs)
代码是用Rust语言定义的一组长度单位类型,利用了泛型和类型别名来创建带不同SI前缀的长度量。下面是详细解释: 基础结构: 使用了Quantity<V, P, Meter>作为基础类型,表示一个带有值类型V、前缀P和单位Meter的量。 Meter是…...
网络通信领域的基础或流行协议
一、TCP(传输控制协议) 1. 宏观介绍 TCP:全称“Transmission Control Protocol”——传输控制协议,是互联网最基础的传输协议之一。传输层协议,提供面向连接、可靠的字节流传输服务。它通过三次握手建立连接、四次挥手断开连接,确保数据有序、完整地传输作用:让两个设备…...
STM32——GPIO
1、GPIO简介 GPIO(General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 …...
AE模板 300个故障干扰损坏字幕条标题动画视频转场预设
这个AE模板提供了300个故障干扰损坏字幕条标题动画视频转场预设,让您的视频具有炫酷的故障效果。无论是预告片、宣传片还是其他类型的视频,这个模板都能带给您令人惊叹的故障运动标题效果。该模板无需任何外置插件或脚本,只需一键点击即可应用…...
2025-2026 XCPC
基本信息 本赛季由 jr-zlw \texttt{\color{#AA00AA}{jr-zlw}} jr-zlw, Skyzhou \texttt{\color{#03A89E} Skyzhou} Skyzhou 和 sunchaoyi \texttt{\color{#0000FF}sunchaoyi} sunchaoyi 组队,全靠大佬带飞~。 训练记录 2025.05.02 The 2023 Guangdong Provinci…...
list类的详细讲解
【本节目标】 1. list的介绍及使用 2. list的深度剖析及模拟实现 3. list与vector的对比 1. list的介绍及使用 1.1 list的介绍 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list 的底层是双向链表结构&a…...
中小企业MES系统数据库设计
版本:V1.0 日期:2025年5月2日 一、数据库架构概览 1.1 数据库选型 数据类型数据库类型技术选型用途时序数据(传感器读数)时序数据库TimescaleDB存储设备实时监控数据结构化业务数据关系型数据库PostgreSQL工单、质量、设备等核心…...
wfp CommandParameter 详细解说
WPF 中的 CommandParameter 是命令模型中的关键属性,用于向命令的执行逻辑传递动态参数。以下是其主要特性和应用场景的详细解析: 1. 基本概念与用法 数据传递机制 CommandParameter 通常与 Command 属性配合使用,允许在 XAML 中静态定义参数或在绑定中动态传递值。…...
正弦波、方波、三角波和锯齿波信号发生器——Multisim电路仿真
目录 Multisim使用教程说明链接 一、正弦波信号发生电路 1.1正弦波发生电路 电路组成 工作原理 振荡频率 1.2 正弦波发生电路仿真分析 工程文件链接 二、方波信号发生电路 2.1 方波发生电路可调频率 工作原理 详细过程 2.2 方波发生电路可调频率/可调占空比 调节占空比 方波产生…...
Java语言概述
Java语言概述 什么是程序? 程序是计算机执行某些操作或解决某个问题而编写的一系列有序指令单集合。 举例: 计算11,并把结果写在黑板上 计算11,并把结果显示在屏幕上(按编程语言规定的语句࿰…...
截图软件、画图软件、左右分屏插件、快捷键
截图软件 画图软件 画图时候按字母可以改变颜色:红色r,蓝色b,绿色g,粉色p,橙色o 左右分屏: 快捷键 1.打开文件或文件夹: CtrlP:快速打开文件。CtrlR:快速打开文件或文件夹。 2.文件操作: CtrlN&…...
Linux 信号
一、生活中的信号 1.1、生活中的信号从产生到结束过程 例: ①、外卖电话响了(信号产生)-> 我接了电话并告诉外卖员说先放到楼下的架子上(识别到这个信号,并记住,保存到我的脑海里面) ->…...
AI 生成内容的版权困境:法律、技术与伦理的三重挑战
最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...
【愚公系列】《Manus极简入门》013-电影推荐专家:“银幕导航家”
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! …...