- 博客(40)
- 收藏
- 关注
原创 信息论介绍
摘要:本文介绍信息论的基本思想及其应用。信息量的大小可用于判断一道题是否有解、无解,甚至反映题目难度。文章以「12 枚硬币找假币」的经典问题为例,通过计算天平三次测量所能表达的信息量(约 4.775 bit)与题目所需的信息量(约 4.585 bit)进行对比,说明信息论如何判断问题是否有解,并简要提及它在出题与解题中的更多用途。本文介绍信息论的应用及相关公式。信息量的大小,往往能判断一道题是否有解、无解,甚至反映其难度,还可用于解决实际问题。
2026-08-25 09:42:59
317
原创 如何用最粗糙的工艺手搓一台激光枪
摘要: 本文系统梳理了激光技术的发展历程,从1917年爱因斯坦的受激辐射理论到1960年梅曼发明首台红宝石激光器,再到现代工业级光纤激光器的广泛应用。重点解析了早期红宝石激光器的核心构造:以铬离子掺杂的红宝石晶体为增益介质,氙灯脉冲泵浦,通过光学谐振腔实现694.3nm红色脉冲激光输出。文中详细拆解了器件设计参数与组装流程,包括聚光腔校准、高压电路配置及光路调试等关键步骤,并强调其极低电光效率(约0.1%)和散热需求。尽管该装置功率有限且需脉冲工作,但为理解激光原理提供了经典范本,同时警示实际操作需严格遵循
2026-08-06 12:03:02
401
原创 C++ 竞赛十大作弊算法,学了不一定无敌,但不学绝对吃亏。
本文系统整理了C++算法竞赛中的十大"作弊级"优化技术,这些方法通过压榨编译器特性、硬件指令等手段,在不违规的前提下大幅提升算法效率。重点技术包括: 打表法:预计算答案直接查表,实现O(1)时间复杂度 Bitset位压缩:利用64位并行运算,复杂度降低64倍 GCC内置函数:直接调用CPU指令实现O(1)位运算 根号分治:将问题分为大块和小块处理,平衡复杂度 莫队算法:优化暴力查询至O(n√n) O2编译优化:官方允许的性能提升手段 随机化算法:通过概率性方法解决难题 STL优化:利用标准库的高效实现 快读
2026-08-05 22:14:53
384
原创 c++之打表法(近乎作弊)
打表法是一种预处理技术,通过预先计算并存储答案来优化查询效率。摘要示例: 打表法通过预先计算并存储答案(如阶乘模数结果),将大查询问题转化为O(1)的查表操作。针对题目要求计算1!到n!的累加和(模1e9+7),可先用程序生成10^5内的阶乘模值存入数组。对于T≤1e7次查询,直接查表求和即可,避免重复计算,将时间复杂度从O(T*n)降至O(n+T)。该方法尤其适用于输入范围固定、查询量大的场景,显著提升运行效率。
2026-08-05 21:16:42
183
2
原创 c++之卡特兰数
本文介绍了卡特兰数的概念及其应用。卡特兰数是解决特定计数问题的数学工具,适用于两种操作数量相等且过程中不能"翻车"的场景,如栈操作序列、合法括号组合等。文章通过具体题目(如NOIP栈问题、小猫配对)展示了卡特兰数的实际应用代码,并详细推导了其数学公式(包括减法原理、通项公式、递推关系等)。卡特兰数的核心特征在于:1)操作过程中始终保持某一条件;2)问题可分解为独立子问题。理解卡特兰数需要掌握其四种等价表达形式及适用场景,这为解决相关算法问题提供了有力工具。
2026-08-05 10:59:24
656
原创 创造桌宠日记2:千万不要更新你的mac
摘要:作者更新Mac M4系统后出现界面异常,Xcode无法打开且图标异常,更新和重装均无效,导致项目延期。建议用户暂缓升级系统,等待苹果修复该问题。(99字)
2026-08-05 10:06:33
265
原创 C++ STL迭代器完全指南:从原理到实战
本文全面介绍了C++ STL中迭代器的核心概念与实用技巧,主要内容包括: 迭代器本质:作为容器与算法间的桥梁,提供统一访问接口,屏蔽容器底层差异,类比"智能指针"。 五大分类: 输入/输出迭代器(单向只读/只写) 前向迭代器(可读可写单向) 双向迭代器(支持前后移动) 随机访问迭代器(最强功能,支持跳跃访问) 核心用法: 四种迭代器类型(普通/常量/反向/常量反向) 基础操作符与遍历规范 C++11简化写法(auto和范围for) 关键难点: 迭代器失效原理与场景分析 不同容器(vector/list/ma
2026-08-04 12:16:38
427
原创 去重排序c++(绝非正解)
本文介绍了一种利用STL容器set解决NOIP 2006普及组题目"明明的随机数"的简便方法。题目要求对N个1-1000的随机数进行去重和排序。传统方法需要分别调用sort和unique函数,而set容器具有自动排序和去重的特性,能直接满足题目需求。文章提供了使用set的完整代码示例,通过insert()函数插入元素,用size()获取不重复数字个数,并用迭代器遍历输出有序结果。这种方法简化了传统排序去重的繁琐步骤,代码仅需15行即可完成题目要求。
2026-08-04 12:07:28
257
原创 如何用纯物理结构造一个不用变速器就能做到机体过热时自动降低转速的电动机
本文提出了一种利用角动量守恒原理设计的有刷电机自动调速方案:通过在电机转子上安装可伸缩的"手臂"结构,并利用乙醇的热胀冷缩特性实现温度感应。当电机过热时,乙醇膨胀推动手臂外展,增大转动惯量使转速降低;温度正常时手臂回缩。这种简易的被动温控设计虽非最优方案,但能有效防止电机过热损坏,主要创新在于将滑冰运动员的角动量守恒现象转化为机械温控机制,并选用乙醇作为热敏介质。全文通过图文结合的方式,用通俗的语言阐述了这一物理原理的工程应用。
2026-08-04 09:59:30
474
原创 彻底搞懂格雷码(最详细)
格雷码是一种相邻数值仅1位变化的二进制编码,由弗兰克·格雷提出。相比普通二进制,格雷码能有效避免多比特跳变时的数据错误,在FPGA异步FIFO、编码器采样、通信纠错和算法遍历中有广泛应用。其核心转换基于异或运算:二进制转格雷码(bin^(bin>>1)),格雷码转二进制则通过逐位异或还原。实际工程中,格雷码解决了异步采样、信号抖动等问题,是数字电路和嵌入式开发的必备技术。
2026-08-03 17:16:15
478
原创 电脑结构介绍
计算机基于冯・诺依曼体系结构,由五大逻辑部件组成:CPU(运算控制核心)、内存(临时存储)、外存(硬盘)、输入/输出设备和总线。具体硬件包括主板(连接所有部件)、CPU(需散热器)、内存、存储设备(SSD/HDD)、显卡(图形处理)、电源、散热系统和机箱。这些组件协同工作完成计算任务,理解其构成是电脑选购、组装和维修的基础。
2026-08-03 11:58:01
342
原创 创造桌宠日记1:大胆的想法
这篇文章分享了作者尝试用个人电脑搭建AI桌宠的探索过程。作者发现主流AI桌宠需要购买算力token后,决定利用自有电脑作为服务器开发个性化的AI Agent。虽然面临代码编写和环境配置两大挑战(尤其对非专业人士难度较大),且遇到AI辅助工具图片上传故障的意外情况,作者仍坚持推进项目。整个工程预计耗时数月,但作者认为这种自主开发思路值得借鉴,展现了技术爱好者突破商业限制的创造精神。
2026-08-03 09:37:44
297
原创 C++ 入门教程 10:sort 排序函数完全指南
本文系统介绍了C++中sort函数的使用方法,涵盖整型数组、字符数组和字符串的排序技巧。主要内容包括:1)基本格式与默认升序;2)整型数组从0或1开始的下标处理;3)降序排列的实现;4)字符按ASCII码排序规则;5)字符串内部排序与字典序排列。文章提供了多个代码示例和实战题目,并总结了不同数据类型的排序方式对比表和使用技巧。掌握这些知识能有效提升算法竞赛和日常编程中的排序操作效率。
2026-08-03 09:21:29
360
原创 一个人如果暴露在太空中会先怎么死
太空暴露下的致命威胁分析:人体在太空中会因多种因素迅速死亡,其中最快的是缺氧窒息(约90秒)、肺部破裂(数秒至数分钟)和体液沸腾(30秒至1分钟)。微陨石撞击可造成瞬时死亡,而辐射、极端温度(高温数十分钟、低温12-26小时)和脱水(3-5天)则是次级威胁。长期暴露会因饥饿(数周)、辐射病或感冒并发症致死。最戏剧性的是,若未被立即杀死,最终会面临宇宙级终结——从50亿年后太阳膨胀到万亿年后的质子衰变或宇宙热寂。数据显示,影视作品中的"冻死"并非首要死因。(149字)
2026-08-02 09:29:16
277
原创 c++入门教程9:基础排序
本文介绍了四种基础排序算法:冒泡排序、计数排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换实现排序;计数排序利用数组下标有序性统计元素出现次数;选择排序每次选取最小值与首位交换;插入排序将元素逐个插入有序区。文章以代码示例展示各算法实现,最后通过P1138题目演示计数排序的应用,解决第k小整数问题。四种排序算法各有特点,适合不同场景需求。
2026-08-02 09:27:48
317
原创 进制代数(原创数学理论,全网独一份,严禁抄袭)
本文介绍了一种解决形如$x^0+x^1+...+x^n=C$方程的新方法,当$log_2x$为整数时适用。传统逐一代入法效率低下,而新方法利用二进制转换原理:将左边视为$x$进制数$(11...11)_x$,右边转换为二进制后,通过比较位权快速求解。进一步优化后只需转换部分二进制位即可确定$x=2^k$的值。以$x^0+...+x^5=37449$为例,新方法仅三步即得解$x=8$,相比传统方法显著提升效率。文章提醒该方法可能不被传统教学认可,需谨慎使用。
2026-08-01 08:29:32
784
原创 c++入门教程8:字符串
本文介绍了C++中字符串的基本概念及应用。字符串相比字符数组更为方便,其索引默认从0开始,以'\0'结尾。文章详细讲解了字符串的声明、初始化、输入输出方法,并对比了不同索引方式的优缺点。重点介绍了字符串的加法运算和丰富的内置函数,包括长度获取、拷贝、拼接、比较、查找等操作。文中还提供了完整的字符串函数列表,涵盖C风格字符串和C++ string类的常用方法,帮助开发者更高效地处理字符串操作。
2026-08-01 08:27:02
370
原创 密度与引力的关系
摘要:本文探讨了黑洞引力远超恒星的原理。虽然引力仅与质量相关,但密度通过改变体积间接影响引力强度。根据万有引力公式,当质量相同时,黑洞极小的体积使物体能更接近其质量中心,导致表面引力比恒星大570亿倍。文章用微积分思想解释了这个现象,指出密度差异造成的距离变化使引力产生指数级差异。这解释了为何相同质量的黑洞比恒星具有更强的表面引力效应。(149字)
2026-07-31 08:56:08
474
原创 如何在c++编译器里写python代码~python转c++
这篇文章展示了一个巧妙的方法:在C++程序中嵌入Python代码并执行。作者提供了完整的C++框架,利用原始字符串(raw string)保存Python代码,通过生成临时.py文件并调用系统命令来运行。这种方法特别适合处理C++中繁琐的任务(如高精度计算),而Python可以简洁实现的情况。文中以高精度加法为例,对比了C++的复杂实现和Python的一行解法,并给出了常见错误解决方案。这种跨语言调用技巧为开发者提供了新的编程思路,同时也展示了不同语言的优势互补。
2026-07-31 08:54:02
375
原创 c++头文件列表
本文概述了42个C++标准库头文件的核心功能,涵盖输入输出、容器、算法、多线程等关键领域。主要包括:1) 流处理(iostream/fstream/sstream);2) 常用容器(vector/map/set等13种);3) 算法工具(algorithm/numeric/functional);4) 智能指针与内存管理(memory);5) 多线程支持(thread/mutex/atomic等5种);6) 数学与随机数(cmath/random);7) 字符串与正则(string/regex);8) 类型
2026-07-30 09:50:54
324
原创 c++入门教程7:增删改查
本文介绍了C++数组的四大基础操作:增(插入)、删(删除)、改(修改)、查(查找)。通过具体代码示例演示了数组元素的插入(向后移位)、删除(向前移位)、直接修改等操作。在查找部分,对比了枚举查找和更高效的二分查找算法,阐述了二分查找通过折半策略大幅提升查找效率的原理。全文以数组下标和值的变化表格辅助说明,适合初学者理解数组基本操作的实现逻辑。
2026-07-30 09:48:59
346
原创 c++高阶冷门算法之折半搜索
折半搜索是一种高效解决子集和计数问题的分治算法。它将问题规模n分成两半,先分别计算两个子集的所有可能和(时间复杂度O(n·2^{n/2})),再通过合并结果寻找总和等于目标值t的组合。相比动态规划(O(n·t)),折半搜索在n较小(≤40)时优势明显,且不受t大小影响。文章提供了C++实现模板,通过递归枚举子集和二分查找合并结果,显著降低了时间复杂度(如n=40时优化约2.6万倍)。适用于元素数量中等、目标值可能较大的场景。
2026-07-29 10:20:42
451
原创 c++入门教程6:一维数组及其应用
本文简要介绍了C++中一维数组的基本概念和使用方法。主要内容包括:数组的声明方式(如int arr[N])、下标从0开始的特性、数组初始化方法(如a[N]={}),以及字符数组的特殊初始化方式。通过一个输出名言"要致富,先撸树"的示例程序,展示了字符数组的实际应用。文章采用幽默的口吻讲解技术要点,适合初学者理解数组这一基础数据结构。
2026-07-29 10:20:08
355
原创 C++循环底层差异深度解析
C++标准规定do-while的条件表达式在循环体执行后求值,导致极少数特殊场景变量销毁后读取残留栈数据。这是目前全网唯一脱离入门、直击底层、覆盖竞赛+工程、包含版本差异与性能本质的C++循环深度专题。:范围for会预缓存begin/end迭代器,容器结构修改导致迭代器悬空。-竞赛选手:掌握传统for的极致优化,理解各循环的汇编差异。C++标准委员会对循环的分类并非基于表面语法,而是基于。:无法被编译器自动展开循环,卡常场景劣势明显。:所有固定次数遍历、数组遍历、卡常题目——,是执行流层级理解错误。
2026-07-28 10:01:08
460
原创 C++入门教程5:循环结构
电脑每秒可以执行惊人数量的运算,而重复执行这个运算可要归功于循环。循环的核心作用是让代码重复执行,直到满足退出条件。C++提供了三类标准循环结构,并辅以控制关键字来精确管理循环流程。从编译器角度看,所有循环结构最终都会被转换为底层的汇编指令。无论是while、do while还是for循环,在编译后都会变成条件跳转指令(如jmpjejne等)的组合。编译器会根据循环结构生成相应的条件判断和跳转逻辑,优化器还会对循环进行展开、向量化等优化处理。
2026-07-28 09:59:42
405
原创 优快云——Markdown文本编译器渲染教学
摘要: 本文详细解析优快云文本编辑器的数学公式渲染方法,基于老旧MathJax2.7引擎,总结兼容性规则与实用技巧。核心内容包括: 语法规范:区分行内公式($...$)与独立公式($$...$$),列举常用LaTeX符号对照表(如希腊字母、积分、分式等); 避坑指南:禁用\cfrac、高次根式等易报错语法,限制嵌套层数,推荐拆分复杂公式; 稳定方案:采用「前置定义+主公式简化」策略,通过aligned环境预定义子项,确保复杂公式正常渲染; 排版建议:公式独立成行、避免超长内容,并附实测通过的代码模板。文末
2026-07-27 10:09:58
269
原创 数学证明题求教
摘要:这是一道涉及多重高级数学概念的复杂证明题,包含Γ函数、Ψ函数、多重积分、级数求和、特殊函数组合等。题目给出了多个自定义函数表达式,要求证明一个包含三重积分、二重积分、无穷级数、素数求和等复杂运算的恒等式。由于表达式过于复杂且涉及领域广泛,建议具备复变函数、特殊函数、高等微积分等专业知识的数学研究者协助解答。题目末尾备注表明此为Markdown渲染教学案例。
2026-07-27 10:06:52
118
1
原创 c++入门教程4:条件分支与判断语句
本文介绍了C++中判断语句的使用方法。if语句通过布尔值判断条件决定代码执行,格式为if(条件){执行内容}。文章展示了判断数字正负的例题,对比了基础写法与简化写法(省略大括号),并介绍了多分支结构else if的用法。最后通过奇偶判断练习题巩固知识点,强调判断语句是赋予代码灵活性的关键结构。适合初学者理解条件判断的基本概念和应用场景。
2026-07-26 10:21:12
292
原创 动态规划 dp 题目与讲解
本文介绍了动态规划解决旅行计划问题的方法。题目要求从城市0到城市n,可选择高铁或飞机(不超过k次),连续飞行算一次。使用DP[t][i]表示坐t次飞机到达城市i的最短时间,分两种情况转移:坐高铁或连续飞行(利用前缀和优化)。代码实现中预处理飞行时间前缀和,通过双重循环(飞机次数和城市)进行状态转移,最后取最小值作为答案。该方法有效解决了带约束的最短时间路径问题。
2026-07-26 10:20:38
267
原创 CCF-GESP C++ 1-5级考纲完全指南
本摘要提炼了CCF-GESP C++ 1-5级考试的核心知识点和备考要点: 一级基础:重点覆盖计算机基础、C++语法框架、变量与运算符(尤其除法取模)、顺序结构编程,强调零基础入门易错点。 二级进阶:突出分支循环结构,详解关系/逻辑运算、if-else嵌套、for/while循环及控制语句,新增数组和数学函数应用。 三级核心:聚焦数组字符串深度应用(二维矩阵、string类操作)、函数模块化编程(含递归基础)及排序查找算法。 四级算法:引入结构体、枚举/模拟/贪心三大算法思想,进阶递归与数论基础(GCD/L
2026-07-25 09:29:49
574
原创 c++下楼梯例题->斐波那契解析
这篇文章解释了爬楼梯问题与斐波那契数列的关系。题目要求计算n级台阶的不同走法(每次1或2步),其解法恰好对应斐波那契数列的第n项(1,2,3,5...)。原理是动态规划:第n阶方案数等于前两阶方案数之和(f[n]=f[n-1]+f[n-2])。文章还给出了C++代码实现,并指出若允许走更多步(如k步),递推式可扩展为f[n]=∑f[n-j](j从1到k)。通过理解这个模式,可以解决类似的变种问题。
2026-07-25 09:29:19
349
原创 CSP-J 入门级初赛笔试核心知识点全解(零基础冲刺)
本文是针对CSP-J入门级初赛笔试的全面考点指南,涵盖选择题、阅读程序和完善程序三大题型。初赛总分100分,包含计算机硬件与系统基础、数制与编码、逻辑运算、数据结构、算法基础、C++语法和竞赛常识等核心模块。文章详细梳理了计算机发展史、冯·诺依曼体系、进制转换、位运算、程序语法结构、数组与字符串等必考知识点,并提供解题技巧和常见易错点分析,帮助考生高效备考、查漏补缺。重点包括二进制运算、ASCII码、循环结构、排列组合等高频考点,适合零基础冲刺和考前快速复习。
2026-07-24 09:30:00
788
原创 c++多重背包优化讲解
本文介绍了多重背包问题的三种优化方法:1)双滚动数组优化,将空间复杂度从O(NV)降至O(2V);2)一维滚动数组优化,进一步减少空间占用并轻微提升时间效率;3)二进制拆分法,通过将物品数量拆分为2的幂次和,将问题转化为01背包问题,显著降低时间复杂度。文章通过代码示例详细展示了每种优化方法的实现,并分析了各自的优缺点,为处理大规模多重背包问题提供了有效解决方案。
2026-07-24 09:28:54
747
原创 如何成为黑客:(Kali配置与DVWA渗透实战全攻略)
Kali Linux搭建DVWA靶场与SQL注入实战指南 环境搭建 虚拟机配置:下载VirtualBox/VMware和Kali Linux镜像,导入后设置桥接网络获取独立IP。 DVWA部署:在Kali中配置Apache/MySQL,下载DVWA并设置数据库(用户dvwa,密码p@ssw0rd),调整安全级别为low。 SQL注入实战 手动注入:通过输入1'触发错误,确认漏洞后使用UNION查询获取数据库信息(如1' UNION SELECT user,password FROM users#),破解MD
2026-07-23 09:00:38
333
原创 c++教程3:基本运算符的使用
本文介绍了C++中的基础运算符,包括算术运算、比较运算、位运算和逻辑运算等23种常用运算符,并详细解释了二进制的基本概念及其运算规则。重点讲解了二进制与十进制的转换方法、位权计算原理,以及高效的位移运算(左移相当于乘以2的幂次,右移相当于除以2的幂次)。文章强调移位运算在性能优化中的作用,适合编程初学者理解计算机底层运算机制。全文采用数学公式与实例相结合的方式,清晰呈现了运算符的功能和应用场景。
2026-07-23 08:58:43
506
原创 C++ 基础内置数据类型列表
本文总结了C/C++中常见数据类型的内存占用、存储类型和取值范围。包括布尔型(bool)、字符型(char及其变种)、整型(short/int/long/long long及其无符号版本)、浮点型(float/double/long double)和宽字符类型(wchar_t/char8_t/char16_t/char32_t)。其中,long和wchar_t的内存大小随操作系统而异,long double在GCC和MSVC中实现不同。整型取值范围由字节数决定,浮点型遵循IEEE754标准,精度随类型递增。
2026-07-22 09:44:45
524
原创 c++教程2:标准输入输出流
本文介绍了C++中标准输入输出流的基本用法。通过#include <iostream>引入输入输出库,使用std::cin和std::cout进行数据输入输出,其中>>表示提取操作符,<<表示插入操作符。示例展示了如何声明整型变量并实现简单的输入输出功能。文章还提到通过using namespace std可以省略std::前缀,简化代码。这些基础操作为C++程序处理数据输入输出提供了必要支持。
2026-07-22 09:37:22
135
原创 c++教程1:头文件与程序框架
最近发现很多新手会写头文件,但不太理解头文件的用处以及在c++中所扮演的角色。本文给想学c++的朋友们提供一个入门程序框架教程。2、头文件 :头文件就像工具箱,若要使用各种c++自带工具(如标准输入输出流)就要引用头文件,不同头文件包括不同内容。头文件有很多种,其中 “bits.stdc++.h” 是万能头文件,包含c++头文件所具有的功能(mac系统无法使用万能头文件)。(若想查看更多此类文章,请点关注并进个人页面查看)这时程序框架就写好了,可以开始写可运行代码了…
2026-07-21 22:20:29
163
原创 C++ 静态数组使用心得 —— 竞赛中数组的基础避坑点
本文总结了C++静态数组在算法竞赛中的使用要点:1)全局数组定义在堆内存,支持大容量;局部数组定义在栈内存,容量有限易溢出;2)需警惕数组下标越界问题;3)全局数组自动初始化为0,局部数组可用{0}清零;4)适用于固定规模、追求速度的场景,动态场景建议使用vector。文章重点提示了栈溢出和越界这两大常见陷阱,帮助开发者规避错误。(149字)
2026-07-21 21:44:27
375
GESP一级C++编程题库(20道原创改编真题+完整参考代码)
2026-07-25
GESP二级C++编程题库(20道原创改编真题+完整参考代码)
2026-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅