自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whc的博客

主打python,c++的题解,语法算法解析

  • 博客(36)
  • 收藏
  • 关注

原创 算法详解(六)---动态规划(DP)

本文介绍了动态规划(DP)的基本概念和常见应用。动态规划通过分解问题为重叠子问题并存储解来提高效率,具有最优子结构、重叠子问题和无后效性三大特征。文章详细讲解了斐波那契数列、爬楼梯问题、最长公共子序列(LCS)和最小路径和等经典DP问题的解题步骤,包括状态定义、转移方程、边界条件和计算顺序,并提供了C++实现代码及空间优化版本。这些案例展示了DP在解决最优化和计数问题中的强大能力。

2026-01-12 13:26:08 260

原创 LaTeX 语法入门指南

本文介绍了LaTeX的基本语法和使用方法,主要包括:1)文档结构框架,包含标题、作者等元信息;2)常用命令格式和特殊字符转义;3)文本格式化选项,如字体样式、段落间距;4)数学公式的编写方式,包括行内公式和独立公式;5)列表和表格的创建;6)图片插入方法;7)参考文献引用格式;8)完整示例文档展示;9)编译流程说明。适合LaTeX初学者快速入门,建议通过实践练习逐步掌握各项功能。

2026-01-10 23:02:26 282

原创 算法详解(五)---搜索算法(DFS,BFS,A*,IDA*,回溯,记忆化搜索,剪枝策略)

本文全面介绍了C++中的搜索算法,从基础概念到高级实现。主要内容包括:搜索算法的定义与分类(线性、树形、图形搜索);基础查找算法如顺序查找(O(n))和二分查找(O(log n));深度优先搜索(DFS)和广度优先搜索(BFS)的原理与实现;以及回溯算法的通用框架。通过代码示例和复杂度分析,帮助读者系统掌握各类搜索算法的核心思想与应用场景。文章还推荐了可视化演示工具,便于加深理解。

2026-01-10 09:15:32 30

原创 算法详解---大纲

本文详细介绍了C++算法学习的完整知识体系,共12个核心模块。从基础的算法思想、递归分治,到动态规划、图论算法等高级内容,系统性地构建了算法知识框架。每个模块包含关键知识点和典型应用场景,如排序算法、搜索优化、数据结构应用等。特别强调问题建模能力和实战技巧,包括算法选择策略、调试优化方法及竞赛准备要点。附录提供学习资源和路径建议,推荐通过典型题目实践巩固知识。该体系兼顾理论基础和实战应用,适合系统学习算法设计与优化技术。

2026-01-09 20:52:37 40

原创 算法详解(四)--排序算法

本文详细介绍了C++中常见的排序算法及其实现。主要内容包括: 基础排序算法:冒泡排序、选择排序和插入排序的原理、实现代码及对比分析 改进算法:希尔排序的分组插入思想及实现 高级排序算法:堆排序的二叉树结构应用 算法对比表:全面比较了10种排序算法的时间复杂度、空间复杂度、稳定性等特性 每种算法均配有思路说明、动画演示和C++实现代码 这些排序算法是数据处理的基础,适用于不同场景,如小规模数据、几乎有序数据或需要稳定排序的情况。掌握这些算法有助于解决实际问题时选择最优方案。

2026-01-09 19:42:19 338

原创 算法详解(三)--递归与分治

本模块系统讲解C++中的递归与分治算法。核心内容包括递归三要素(边界条件、递归定义、递推关系)和调用栈机制,通过阶乘计算和汉诺塔问题展示递归思维。重点分析了递归优化技巧,如尾递归转循环、记忆化搜索避免重复计算(斐波那契数列案例),以及回溯算法在全排列问题中的应用。模块强调将复杂问题分解为相同形式的子问题,并通过递归调用栈和分治策略高效解决,同时指出递归可能存在的效率陷阱及优化方案。

2026-01-08 22:55:26 525

原创 算法详解(二)--算法思想基础

本文介绍了C++算法基础模块,重点讲解算法分析方法和暴力枚举与模拟思想。内容包括:1)时间复杂度与空间复杂度分析,使用大O表示法评估算法效率;2)暴力枚举策略,如排列组合生成和优化方法;3)模拟算法设计,包括过程模拟和状态机实现。文章提供了典型代码示例,并强调培养算法思维习惯,如从暴力解入手、复杂度预估和优化思考。最后给出学习建议和掌握程度检查,帮助读者巩固基础算法知识,为后续高级算法学习奠定基础。

2026-01-08 22:38:55 785

原创 算法详解(一)--算法系列开篇:什么是算法?

算法定义与特性算法是解决特定问题的明确有限步骤,具有五大核心特性:必须在有限步骤内结束(有穷性)、每步操作明确无歧义(确定性)、能用基本操作实现(可行性)、可接受输入数据、并产生输出结果。算法是抽象思想,不同于具体代码实现。效率评估体系通过时间复杂度和空间复杂度衡量算法效率。时间复杂度关注运行时间随数据规模的增长趋势,使用大O表示法描述;空间复杂度分析算法所需的额外内存空间。实际设计常需在时间与空间效率间权衡取舍。

2026-01-08 22:28:34 1378

原创 C++ 入门完全指南(六)--指针与动态内存

指针基础与内存管理 本章介绍了指针的核心概念,包括内存地址、指针定义和使用方法。主要内容涵盖: 内存地址特性:展示了变量、数组和结构体的内存布局,不同类型变量的地址差异,以及内存对齐现象 指针基本操作:详细说明了指针的声明、初始化、解引用,以及void指针、空指针的正确使用方法 潜在风险:特别强调了野指针和悬垂指针的危险性,演示了未初始化指针和已释放内存指针可能导致的未定义行为 系统特性:通过代码示例分析了不同平台的指针大小差异(32位/64位系统)和字节序(大端/小端)问题 最佳实践:推荐使用nullpt

2026-01-08 20:49:33 238

原创 C++ 入门完全指南(五)--复合数据类型

本章介绍了数组的基本概念、声明与初始化方法,以及安全性问题。数组是存储同类型数据的连续内存结构,具有固定大小和随机访问特性。一维数组可通过多种方式声明和初始化,包括自动推断大小和部分初始化。示例代码展示了数组访问、修改、大小计算和内存地址分析等操作。特别强调了数组边界检查的重要性,演示了未初始化数组、越界访问的危险,并介绍了安全访问方法和C++11的std::array容器。此外还涉及哨兵值使用、多维数组初始化等内容,为后续算法和数据结构学习奠定基础。

2026-01-07 07:21:40 288

原创 C++ 入门完全指南(四)--函数与模块化编程

本章介绍了C++函数的基础知识,包括函数的作用、基本语法和参数传递方式。函数通过代码复用、模块化提高程序的可维护性和可读性。基本语法涵盖函数定义、声明与调用,演示了有返回值和无返回值函数的实现。参数传递部分详细对比了值传递(创建参数副本,不影响原始变量)和引用传递(直接操作原始变量)的区别,并通过交换变量等实例展示其应用场景。本章内容为后续函数高级特性学习奠定了基础,帮助读者掌握模块化编程的基本方法。

2026-01-06 21:30:57 454

原创 C++ 入门完全指南(三)--程序控制流程

本章介绍了程序中的条件判断结构,包括三种流程控制结构:顺序、选择和循环。重点讲解了if语句(单分支选择)和if-else语句(双分支选择)的使用方法,通过多个示例演示了条件判断的实际应用,如成绩等级判断、三角形类型判断和闰年判断等。同时强调了if语句的语法细节,包括大括号的使用、条件表达式等注意事项。此外还展示了嵌套if-else语句的用法,以及如何通过条件组合实现复杂逻辑判断。

2026-01-05 18:57:21 930

原创 C++ 入门完全指南(二)--基本数据类型与运算

本章详细介绍了C++中的变量与数据类型,重点讲解了基本数据类型的分类和使用。内容包括整型(char、short、int等)、浮点型(float、double)、字符型、布尔型和字符串类型,每种类型都通过表格展示了其大小、范围和典型用法,并配有代码示例演示如何声明、初始化和操作这些数据类型。此外,还介绍了数据类型选择的重要性,包括内存管理、操作定义、精度控制和类型安全等方面。通过实际代码展示了如何获取各类型的取值范围和存储大小,帮助读者理解不同数据类型的特性和适用场景。

2026-01-05 18:38:55 465

原创 C++ 入门完全指南-(一)--编程基础与环境搭建

本文介绍了C++编程语言的入门知识,主要包括三部分内容:1)C++语言概述,包括编程语言层次、C++发展历史和特点,以及其在游戏开发、系统软件等领域的应用;2)开发环境配置指南,推荐了GCC、Clang和MSVC等主流编译器,并提供了Windows环境搭建建议和验证脚本;3)C++程序结构讲解,从简单的"Hello World"示例到完整程序框架,详细说明了预处理指令、命名空间、函数声明等核心元素。文章还推荐了官方文档、学习网站和经典书籍等资源,适合编程新手系统学习C++基础知识。

2026-01-04 21:17:28 1001

原创 Python入门完全指南-(五)--函数

本文介绍了Python函数的基础概念、定义与调用方法以及参数详解。主要内容包括:1)函数是模块化编程的基础,具有代码复用、易维护等优点,在Python中作为"一等公民"可赋值、传递和存储;2)函数定义的基本语法、命名规范及调用方式;3)参数类型分为位置参数、关键字参数和默认参数,解释了各自特点及使用注意事项。特别强调了默认参数应使用不可变对象以避免潜在问题,并提供了正确使用默认参数的解决方案。

2025-12-29 13:38:51 537

转载 构建软件的成本是否真的下降了90%?

摘要: 资深工程师指出,AI驱动的"智能体式编程"正引发软件开发行业的根本性变革。相比传统开发流程(团队协作、复杂架构),AI工具可将项目交付时间从数周缩短至数天,降低90%人工成本。虽然AI仍需人类监督,但"业务专家+开发者"的小型团队模式将取代传统开发团队。杰文斯悖论预示:成本下降将释放大量潜在需求(如Excel流程自动化)。尽管部分开发者质疑AI能力,但作者强调,抗拒变革如同2007年否定iPhone,2026年行业剧变可能超预期。AI在维护旧代码库方面同样表现

2025-12-27 23:30:53 13

转载 大型公司中优秀工程师为何也会写出糟糕代码

大型科技公司高薪聘请优秀工程师却仍产出粗糙代码,主要原因在于工程师流动频繁。公司薪酬结构导致员工平均任期仅1-2年,多数工程师被迫在不熟悉的代码库中工作,形成"新手改代码+老手有限审查"的模式。这种"工程师可替换"策略是公司有意为之,牺牲代码质量换取人员调配灵活性。文章指出,在赶工压力下,即便是优秀工程师面对陌生系统也难免写出不完美代码,这本质是组织管理选择的结果而非个人能力问题。

2025-12-27 23:28:20 13

原创 Python入门完全指南(四)---数据类型

本文介绍了Python中的主要数据类型,包括基本数据类型(数字、布尔、None)和序列类型(字符串)。重点讲解了整数、浮点数的精度问题及解决方案,布尔类型的真值测试规则,None的特殊性,以及字符串的创建、操作和方法。文章采用代码演示与理论说明相结合的方式,展示了Python数据类型的特点和使用技巧,适合开发者快速掌握Python类型系统的核心概念。

2025-12-26 22:41:30 1062

原创 Python入门完全指南---输入输出语句

Python输入输出与格式化方法总结 本文介绍了Python中常用的输入输出方法。输出方面详细讲解了print()函数的基本用法和参数控制(sep分隔符、end结束符)。输入部分重点解析了input()函数的使用技巧和类型转换方法。最后系统比较了三种格式化输出方式:传统%占位符格式化、str.format()方法和推荐的f-string格式化,涵盖字符串、数字、对齐等常见格式化需求。全文提供了大量代码示例,适合Python初学者快速掌握基本I/O操作。

2025-12-26 20:01:18 1244

原创 Python入门完全指南(三)---循环结构

本文详细介绍了Python中的循环结构,包括for循环和while循环的使用方法及核心概念。主要内容涵盖:循环的必要性(遵循DRY原则)、for循环的基本语法和range()函数应用、while循环的执行流程与注意事项、以及break/continue/pass三种循环控制语句的作用机制。文章通过大量代码示例,深入浅出地讲解了循环结构在数据处理、用户交互等场景中的实际应用,帮助读者掌握如何高效利用循环结构简化重复性任务。

2025-12-25 07:20:35 947

原创 Python入门完全指南(二)---分支语句

本文介绍了Python中布尔值与条件语句的核心概念。主要内容包括:1)布尔类型(True/False)及比较运算符(==, >, <等)的使用;2)逻辑运算符(and/or/not)的组合应用;3)if语句的三种结构(if/if-else/if-elif-else)及其嵌套用法;4)三元运算符简化条件赋值。通过多个实用示例(如年龄判断、成绩评定、权限检查等)展示了条件语句的实际应用场景,帮助读者掌握Python中的逻辑判断和流程控制技巧。

2025-12-24 20:59:37 546

原创 Python入门完全指南(一)---基本语法

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。它以语法简洁清晰、易于学习而闻名,是初学者入门编程的绝佳选择。至此,你已经掌握了Python的开发环境、基础语法、变量类型、运算符和顺序结构。这些是所有程序的基础。当程序需要根据不同情况做出不同反应时,就需要用到条件分支结构(if…else语句)。这是你接下来要学习的核心内容,它将使你的程序真正“智能”起来。

2025-12-24 20:43:45 1042

原创 Markdown 语法入门完全指南

Markdown是一种轻量级标记语言,具有简单易学、跨平台兼容的特点。本文全面介绍了Markdown基础语法,包括标题、段落、文字样式、列表、链接图片、引用、代码、表格等核心功能,以及脚注、数学公式等扩展语法。同时推荐了VS Code、Typora等常用工具和官方学习资源,提供了实用技巧和最佳实践建议。文章采用示例与效果展示相结合的方式,帮助读者快速掌握Markdown的使用方法,适合各类文档编写和笔记记录场景。

2025-12-22 15:03:21 704

原创 CF1009B Minimum Ternary String

You are given a ternary string (it is a string which consists only of characters ‘0’, ‘1’ and ‘2’).You can swap any two adjacent (consecutive) characters ‘0’ and ‘1’ (i.e. replace “01” with “10” or vice versa) or any two adjacent (consecutive) characters ‘

2023-08-14 10:56:32 121

原创 CF1008A Romaji

s。

2023-08-14 10:35:30 131

原创 CF1005B Delete from the Left

You are given two strings sss and ttt . In a single move, you can choose any of two strings and delete the first (that is, the leftmost) character. After a move, the length of the string decreases by 111 . You can’t choose a string if it is empty.For examp

2023-08-14 10:24:43 120

原创 CF1005A Tanya and Stairways

1341231234。

2023-08-14 09:12:13 114

原创 CF1000C Covered Points Count

记录当前段被覆盖了几次,然后枚举排序后前缀和改变的节点,把每次改变之前的一段中的节点数加入覆盖数为。还要注意一点:每一个线段的左端点和右端点的节点类型是不一样的,遇到左端点要。看到这个题第一时间想到用前缀和扫一遍,但看一眼数据范围可以发现。可以将所有区间的左右端点存起来再排序,之后扫一遍就可以了。行,每行有两个整数,即这个区间的左右端点。个整数,即每个被覆盖层数对应的点的个数。给你n个区间,求被这些区间覆盖层数为。很明显会爆,再看一眼会发现。

2023-08-13 20:58:32 126 1

原创 CF1003A Polycarp‘s Pockets

Polycarp has nnn coins, the value of the iii -th coin is aia_iai​ . Polycarp wants to distribute all the coins between his pockets, but he cannot put two coins with the same value into the same pocket.For example, if Polycarp has got six coins represented

2023-08-13 20:11:33 140 1

原创 CF1110E Magic Stones

Grigory has nnn magic stones, conveniently numbered from 111 to nnn . The charge of the iii -th stone is equal to cic_ici​ .Sometimes Grigory gets bored and selects some inner stone (that is, some stone with index iii , where 2≤i≤n−12 \le i \le n - 12≤i≤n−

2023-03-25 16:14:08 99

原创 洛谷 P2540 [NOIP2015 提高组] 斗地主 加强版 题解

牛牛最近迷上了一种叫斗地主的扑克游戏。斗地主是一种使用黑桃、红心、梅花、方片的 A 到 K 加上大小王的共 545454 张牌来进行的扑克牌游戏。在斗地主中,牌的大小关系根据牌的数码表示如下:3...

2022-06-19 10:55:05 900

原创 洛谷 P1129 矩阵游戏 题解

洛谷P1129 [ZJOI2007] 矩阵游戏的题解,采用二分图的算法,简单易懂

2022-06-04 20:19:17 425

原创 洛谷 P1880 [NOI1995] 石子合并 题解

题目链接 石子合并题目描述在一个圆形操场的四周摆放 NNN 堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的222堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将 NNN 堆石子合并成 111 堆的最小得分和最大得分。输入格式数据的第 111 行是正整数 NNN,表示有 NNN 堆石子。第 222 行有 NNN 个整数,第 iii 个整数 aia_iai​ 表示第 iii 堆石子的个数。输出格式输出共 222 行,第 111 行为最小得分,第

2022-05-18 22:13:05 344

原创 洛谷 P1662 数7

题目链接:数7题目描述1337个人排成一个圈,从1号人开始报数,初始方向是1,2,3…。如果某个人报的数是7的倍数或数字中含有7,那么报数的方向就反一下。问报数字XXX的是哪个人?比如初始20个数字的情况是:1:1 2:2 3:3 4:4 5:5 6:6 7:7 6:8 5:9 4:10 3:11 2:12 1:13 1337:14 1:15 2:16 3:17 2:18 1:19 1337:20输入格式一行一个数XXX。输出格式一行一个数表示最终报数字XXX的是哪个人。输入输出样例

2022-05-14 23:15:33 275

原创 洛谷 P5027 Barracuda(高斯消元)

题目链接 Barracuda题目背景小正方形的冒险旅途,并不顺利。一路上,小正方形看到了壮美秀丽的小岛被污染,看到了雄伟壮观的火山,还碰到了许许多多的敌人。眼下,小正方形正在对付一个巨大的三角形。题目描述大三角形给小正方形讲起自己的过去:过去的它是一个挖宝工,后来被黑暗之主污染才会落到此番境地。它也希望小正方形去战胜黑暗之主,不过限于黑暗之主的眼线密布,因此必须给小正方形设置障碍才能骗过那些“眼线”。他给小正方形的问题是:它有 nnn个小三角形,每个小三角形有一定的质量,它对这些三角形进行了

2022-05-12 11:48:04 185

原创 洛谷 P1776 宝物筛选(二进制优化&单调队列优化)

刚看到这道题第一眼就两种思路DP和贪心。 但必须要题目说相邻的才能合并,所以就选择DP;自己,我们可以将这种可能赋值为0,即使自己合并自己,也不会有结果;for(int i=1;i<=2*n;i++){ w[i]=w[i-1]+a[i];} 输出这题是求最大值和最小值。我们可以过一遍Max和Min两个数组,打擂求出答案 int ans=0,ans1=0x7f7f7f7f;//最大值和最小值 for(int i=1;i<=n;i++) { ans=

2022-05-02 13:40:20 692

桌面小猫代打6.0 官方版

小猫代打官方版是一款十分具有趣味性的桌面宠物程序。小猫代打最新版支持记录你的按键操作,用户在操作鼠标或者打字的时候就会出现萌萌哒小猫操作的界面。桌面小猫代打软件内置了键鼠模式、纯键盘模式、手柄模式,用户还可以自己DIY小猫的外形,让你的桌面更具个性。 功能: 1、鼠标速度调节 强制移动鼠标开启的时候,猫咪的鼠标位置不反映实际的光标位置,受一些因素的影响,鼠标可能会过慢而导致直播效果不好。(顺便提一下数位板用户在用数位笔时需要关掉强制移动鼠标。)通过调节UI中的鼠标速度滑块即可将猫咪鼠标调整到一个合适的速度。 2、live2d的表情与动作系统 通过使用live2d模型编辑软件生成的*.exp3.json文件与*.motion3.json文件可以让猫咪做出更牛逼的演出效果。 给出的默认live2d表情动作的键位是ctrl+1-6,其中3、4是演示锁手状态下的live2d动作,5、6是演示非锁手状态下的live2d动作 3、右手形状自定义 新版本右手可以通过live2d模型来实现自定义形状了,其实已经有很多人见到标准模式右手有不同形状的猫了,他们其实是用的就是0.1.6版本的开发版。在v0.1.6版本中,右手将不再是你猫咪的形象限制! 4、双机直播/远程联动 v0.1.6版本中猫咪可以通过设置config中的“network”项目来通过ip+端口的形式进行两台电脑间的联动,发送方将会把自己的按键信息发送给接受方。由于开发者肝力不足,此部分没写进UI。 5、OBS透明捕捉 在OBS studio软件中,对猫咪使用游戏捕获,然后勾选“允许透明度”即可直接去掉背景而不需要再添加滤镜。插件形式的透明捕捉请等待日后开发。

2026-01-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除