原创 【C++】洛谷|P1576 最小花费
题目描述:在n个人中,某些银行账号可以互相转账,每次转账需要扣除z%的手续费。要求计算A最少需要多少钱转账,才能使B最终收到100元。 算法思路:将问题转化为最短路径问题,以B为起点反向计算,使用Dijkstra算法求到A的最小初始金额路径。边权表示转账后的到账比例(1-z%),通过不断松弛操作更新各节点到B的最小初始金额。 实现要点: 构建邻接矩阵存储转账手续费 反向计算从B出发到各节点的最小初始金额 Dijkstra算法过程中比较路径乘积来更新最小值 最终输出A节点到B的最小初始金额,保留8位小数 时间
2025-11-04 10:07:45
854
原创 【C++】2025CSP-J第二轮真题及解析
本文聚焦2025年CSP-J复赛4道真题,提供完整解析与满分代码:①拼数题用桶排序提取数字降序拼接;②座位题通过排序+蛇形分配模拟确定座位;③异或和题以动态规划结合反向查找、区间记录优化,求最多不相交有效区间;④多边形题用动态规划+滚动数组+前缀和,通过总子集数减无效方案统计合法子集。内容覆盖基础逻辑与优化技巧,适配各题数据范围,适配备赛参考。
2025-11-02 19:47:25
2305
原创 【Trae】如何使用Trae编译C++(附带MinGW)
本文介绍了在Trae和VSCode中配置C/C++开发环境的方法。首先需要下载Trae和VSCode编译器,并在VSCode中安装"C/C++"插件。通过Trae的IDE设置导入VSCode插件后,创建cpp文件进行测试。若运行失败,需下载MinGW并配置环境变量,同时修改Trae项目中的json配置文件(包括c_cpp_properties.json、launch.json和可选的settings.json),指定MinGW路径和相关参数。最后通过F5编译运行程序,完成开发环境搭建。
2025-10-18 23:55:26
1030
原创 Anaconda镜像仓库安装
清华大学开源镜像站提供了Anaconda镜像源配置指南。Windows用户需先执行conda config --set show_channel_urls yes命令生成.condarc文件,然后在C:\Users\<用户名>\.condarc中添加清华镜像源地址,包括main、r、msys2三个默认通道及conda-forge、pytorch两个自定义通道,以加快Anaconda包下载速度。该方法为国内用户提供了稳定高效的Python包管理解决方案。
2025-10-15 09:40:36
178
原创 【Miniforge3|Mamba】安装教程
这一步是问你是否给这台电脑上的所有用户装,这里选Just Me就好了,根据自己需求。,就不用我们手动添加了。Python安装看个人需求,如果你不是很懂就装一个。根据你的系统选择下载版本,我是Windows系统,因此选择的是这个。下载完成后,如果浏览器提示有风险,忽略即可。如果你是需要manim来的,那么你需要执行以下命令。这一步是选择安装的位置,默认C盘,说明网不好,要打开科学上网再继续。接着点击Install开始安装。双击开始安装,安装步骤如下。这一步全部勾上,尤其是这个。中途如果遇到这样的报错。
2025-10-15 09:01:52
355
原创 【C++】【NOIP】洛谷|P1098 [NOIP 2007 提高组] 字符串的展开
题目摘要: 本题要求对输入字符串中的减号-进行展开处理,需满足特定条件:减号两侧同为字母或数字且右侧ASCII码严格大于左侧。展开方式由三个参数控制: p1决定字母大小写或替换为* p2控制填充字符的重复次数 p3决定正序或逆序展开 需处理特殊情况(如字符连续时仅删除减号,不满足条件时保留减号)。输入含参数字符串,输出展开后的字符串。例如,输入1 2 1和abcs-w1234-9s-4zz,输出abcsttuuvvw1234556677889s-4zz。
2025-10-07 23:35:16
934
原创 【C++】队列queue的使用
本文介绍了C++中队列(queue)的基本用法。主要内容包括队列的声明语法、常用操作函数及其功能说明,如empty()、size()、push()、pop()等,并提供了完整的示例代码演示这些操作的实际使用。示例展示了如何创建队列、添加元素、访问首尾元素以及清空队列,最后给出了程序运行结果的截图。文章简明扼要地总结了C++队列的核心知识点,适合快速了解队列的基本操作。
2025-09-14 22:08:17
179
原创 【C++】String类的使用
C++标准库中的<string>头文件提供了std::string类,用于安全高效地处理字符串。它支持基本操作如初始化、连接、访问字符,以及常用成员函数如size()、empty()、find()、substr()和replace()。示例代码展示了字符串长度获取、赋值、连接、查询、子串提取和替换等操作,体现了其易用性和功能性。std::string相比C风格字符串更安全便捷,是C++中处理字符串的首选工具。
2025-09-14 15:38:15
458
原创 【C++】动态数组vector的使用
本文介绍了C++标准库中vector容器的核心方法及其应用。主要内容包括:基础属性查询方法(size/empty/capacity)、元素访问方式(operator[]/at/front/back)、增删改操作(push_back/emplace_back/insert/erase)、内存管理(reserve/shrink_to_fit/resize)以及迭代器使用。文章提供了int类型和自定义struct的vector使用示例,展示了三种遍历方式,并演示了查找、添加和删除元素的操作。通过代码示例和运行结果
2025-09-14 11:55:21
760
原创 【Git】使用GitCode的全局配置
本文介绍了在GitBash中配置Git环境并克隆项目的步骤。首先需要安装Git客户端,然后通过GitCode克隆项目。配置完成后即可执行clone操作获取项目代码。文中提供了安装教程链接和配置截图,帮助用户快速完成环境搭建。
2025-09-08 16:34:49
198
原创 【Git】Git安装包阿里镜像
Git官网下载速度慢,有人竟在电商平台售卖安装包。建议通过官方渠道下载对应版本后,使用国内镜像提高下载速度。文中提供了Git官网和国内镜像的链接,并附有下载指引。这种方法既免费又高效,避免为几块钱的安装包买单。
2025-09-08 16:22:31
279
原创 【C++】CodeBlocks代码格式化自定义&格式化快捷键(中文UI)
摘要:本文介绍了如何在CodeBlocks中自定义代码格式化风格和设置快捷键。首先通过"设置→AStyle插件"选择花括号风格(如JAVA风格)和空格填充方式,然后在"键盘快捷键"中为"源代码格式化"功能设置快捷键。这些操作可以帮助开发者快速将代码按个人偏好进行标准化排版。(99字)
2025-09-08 15:46:41
317
原创 [NOIP][C++]洛谷P1002 | [NOIP 2002 普及组] 过河卒
题目描述:一个过河卒从棋盘A点(0,0)出发,只能向下或向右移动,到达B点(n,m)。棋盘上有一个马,其位置和所有一步可达的点为禁区。要求计算避开禁区到达B点的路径总数。 解题思路:使用动态规划方法,dp[i][j]表示到达(i,j)的路径数。先标记马及其控制点为禁区,然后初始化边界条件(第一行和第一列),最后递推计算每个点的路径数,若为禁区则路径数为0,否则为上方和左侧路径数之和。 关键点: 标记马及其8个控制点为禁区 动态规划递推:dp[i][j] = dp[i-1][j] + dp[i][j-1] 边
2025-08-28 17:57:49
981
原创 【C++】指针
本文介绍了C++中指针的基本概念和使用方法。指针是一个存储变量内存地址的变量,通过&获取地址,使用*访问地址值。文章演示了指针声明、变量地址赋值、指针值访问等操作,并展示了指针重新指向其他变量时的变化。同时指出直接给指针赋值会导致错误,而通过指针修改其指向变量的值是可行的。指针操作是C++编程中的重要技能,可以帮助实现动态内存分配等高级功能。
2025-07-29 22:40:22
536
原创 【C++】判断语句
本文介绍了C++中的判断语句和三目运算符。主要内容包括:if/else条件判断、嵌套if语句、switch多分支选择结构及其嵌套用法;并展示了条件运算符(?:)实现的三目运算,通过示例说明其"条件?表达式1:表达式2"的语法特点。这些基础控制结构是C++程序流程控制的重要组成部分。
2025-07-29 22:07:13
327
原创 【C++】数字&cmath库常用函数
int main()// 数字定义short s;int i;long l;float f;double d;// 数字赋值s = 10;i = 1000;f = 230.47;// 数字输出return 0;
2025-07-27 18:10:18
686
原创 【C++】定义常量
C++中定义常量的两种方法:1)使用#define预处理器指令,在预处理阶段进行文本替换;2)使用const关键字声明类型安全的常量。两种方法都能成功定义常量,但const更安全且支持类型检查。示例展示了如何用这两种方法定义长度、宽度常量并计算面积,结果均为50。良好的编程习惯建议将常量名称全部大写以便识别。
2025-07-26 23:13:28
279
原创 【C++】位运算符
摘要:本文介绍了位运算符的基本操作,包括与(&)、或(|)和异或(^)的真值表,并展示了这些运算符在二进制数上的应用示例。以A=60(00111100)和B=13(00001101)为例,详细计算了A&B、A|B、A^B和~A的二进制结果。这些运算在位级数据处理中具有重要作用,能够实现高效的位操作功能。
2025-07-26 17:32:31
194
原创 【C++】数据类型
菜鸟教程传送门菜鸟教程里讲的太全面了,很多数据类型我们平常都用不上,因此写一篇笔记记录常用的数据类型。C++需要在变量被定义时就赋予其类型——为它开辟一部分内存空间。
2025-07-26 16:43:04
1073
原创 【VSCode】复制到下一行快捷键
VSCode复制到下一行快捷键是Shift+Alt+↓。若失效,可通过快捷键设置(Ctrl+K, Ctrl+S)搜索copy line down命令,检查并重新设置快捷键。如遇冲突,可选择修改或保留当前设置。该操作可解决大多数快捷键失效问题。
2025-07-24 23:52:35
752
原创 【概率论】贝叶斯定理——直觉是如何欺骗你的
本文通过Steve职业选择的生动案例,直观解释了贝叶斯定理的核心思想。在农民与图书管理员的职业判断中,虽然Steve的性格特征更符合图书管理员形象,但基于农民基数更大的事实(20:1),通过构建样本分析(4名符合条件的图书管理员vs20名农民),最终得出选择农民概率更高的结论。案例形象展示了贝叶斯定理"新证据更新既有认知"的核心要义:先验概率(职业分布)与条件概率(特征符合度)共同决定最终判断。文中配图直观呈现了贝叶斯公式的内在逻辑,强调统计思维在概率判断中的重要性。(149字)
2025-07-23 00:10:29
662
原创 [NOIP][C++]洛谷P1364|啊哈添柴 12044. 医院的设置
摘要 题目要求在二叉树中选择一个节点建立医院,使得所有居民到医院的路径总和最小。采用树的重心算法解决:首先计算各子树大小和最大分量值以确定重心节点,再以重心为根计算加权路径和。输入包括节点数及每个节点的人口、左右子节点信息,输出最小路径和。样例输入5个节点,输出最小路径和81。通过两次DFS遍历——第一次确定重心,第二次计算路径和——实现高效求解。
2025-07-16 23:12:29
337
原创 [NOIP][C++]洛谷 P1395 会议(树的重心)
摘要 本文解决了一个在树形村庄中选择最佳会议地点的问题。给定n个村民和n-1条连接路径构成的树形结构,要求找到一个村民家作为会议地点,使得所有村民到该点的距离之和最小。通过两次深度优先搜索(DFS)实现:第一次DFS计算子树大小并确定树的重心(最优会议点),第二次DFS计算该点到所有其他点的距离之和。算法时间复杂度为O(n),适用于大规模数据(n≤5×10^4)。最终输出最优会议点编号及最小距离和,若有多解则选择编号最小者。
2025-07-16 22:58:39
1205
原创 [NOIP][C++] 树的重心
树的重心是指删除该点后,剩余连通分量中节点数的最大值最小的点。通过DFS遍历树结构,计算每个节点作为候选重心时的最大连通分量大小,最终选择使该值最小的节点作为重心。代码实现了这一算法,输入树结构后输出重心节点编号。
2025-07-16 21:38:28
462
原创 [NOIP][C++]解救小哈
摘要:本文介绍了使用DFS解决迷宫最短路径问题的优化过程。初始40分解法采用基础DFS,随后通过添加d数组记录各点最短路径值进行剪枝优化(当当前步数now≥d[x][y]时终止搜索),将分数提升至70分。进一步将剪枝条件改为now>minNum || now≥d[x][y]后获得AC。文章展示了从暴力搜索到逐步优化剪枝的完整思路,最终在1000×1000的矩阵中实现高效求解。
2025-07-12 01:53:30
135
原创 [NOIP][C++]洛谷P1028 [NOIP 2001 普及组] 数的计算
题目要求计算给定正整数n能生成的合法数列个数,数列构造规则为:可以在数列末尾添加不超过前一项一半的正整数。 解法1采用DFS搜索所有可能数列,但会超时。解法2通过动态规划,利用数组f存储以i结尾的数列个数,f[i]等于f[1]到f[i/2]之和加1。解法3在DFS基础上进行剪枝优化,用数组d存储中间结果来避免重复计算。 三种方法中,动态规划解法效率最高,能够通过所有测试用例。该问题展示了递归与动态规划在解决计数类问题时的不同表现,以及优化策略的选择。
2025-07-12 00:09:16
966
原创 [NOIP][C++]洛谷P1006 [NOIP 2008 提高组] 传纸条
【P1006 [NOIP 2008 提高组] 传纸条 - 洛谷】https://www.luogu.com.cn/problem/P1006。
2025-07-10 21:12:31
778
原创 [NOIP][C++]洛谷P1376 [USACO05MAR] Yogurt factory 机器工厂
摘要 题目描述了一个机器工厂需要在N周内完成订单的问题,每周生产成本和订单需求不同,可以选择提前生产并支付存储费用。解题关键是使用贪心算法,比较每周生产与提前生产的总成本,选择最小值。核心代码通过双重循环计算最优成本,特别要注意使用long类型避免溢出。样例输入4周数据,输出最小成本126900。解题要点包括:贪心选择策略、成本比较、数据类型选择(避免int溢出)。
2025-07-08 22:30:32
826
原创 [NOIP][C++]洛谷P1151 子数整数
题目要求找出10000到30000之间所有满足条件的五位数:该数的前三位、中间三位和后三位组成的子数都能被给定整数K整除。程序遍历这个范围内的所有五位数,分解出三个子数并检查是否能被K整除,满足条件的则输出。若无解则输出"No"。例如输入15时,输出22555等4个符合要求的数。
2025-07-07 22:37:54
473
原创 [NOIP][C++]洛谷P1150 Peter 的烟
题目摘要: P1150 Peter的烟问题描述Peter有n根烟,每吸完一根保存烟蒂。k个烟蒂可换1根新烟,求最终能吸多少根烟。不能借烟蒂。输入为n和k,输出总烟数。例如n=4,k=3时输出5,n=10,k=3时输出14。数据范围1<n,k≤10^8。题解使用循环处理烟蒂兑换过程:初始有n根烟,每次用烟蒂兑换新烟,剩余烟蒂继续累积,直到无法兑换为止,最后输出总烟数。
2025-07-07 22:36:23
556
原创 [NOIP][C++]洛谷P1089 [NOIP 2004 提高组] 津津的储蓄计划
摘要 题目描述了一个储蓄计划:津津每月获得300元,根据月度预算管理零花钱。如果月末剩余≥100元,就将整百金额存入妈妈处(年末获得20%利息)。程序需要判断12个月内是否会因预算不足而出现资金短缺,若发生则输出首次出现的月份(负号表示);否则计算年末总金额(包括储蓄本金加利息)。输入为12个月的预算,输出为资金短缺月份或年末总金额。样例1因第7月预算不足输出-7,样例2能顺利完成计划输出1580。
2025-07-07 22:34:19
790
原创 [NOIP][C++]洛谷P1085 [NOIP 2004 普及组] 不高兴的津津
这是一道关于判断津津一周中最不高兴的是哪一天的简单程序设计题。题目输入7天的学校上课时间和课外上课时间,要求计算每天总上课时间超过8小时的最不高兴的一天(若有多个,取最早的一天)。题解使用循环遍历7天数据,记录总时间超过8小时且最大的那一天,最后输出结果。若没有超过8小时的情况则输出0。
2025-07-07 22:32:51
521
原创 [NOIP][C++]洛谷P1047 [NOIP 2005 普及组] 校门外的树
题目描述了一条长度为l的马路上每隔1米种有一棵树(0到l的位置),给出m个施工区域(区间),要求移除这些区域内的所有树(包括端点),计算最终剩余的树的数量。 解法思路: 创建一个数组标记所有树的存在状态(初始为1) 对于每个施工区间,将对应位置的树标记为0(被移除) 最后统计数组中仍为1的树的数量 输入样例: 500米马路,3个施工区间: 150-300、100-200、470-471 输出结果剩余298棵树 数据范围: 1≤l≤10^4,1≤m≤100,0≤u≤v≤l
2025-07-07 22:31:15
607
原创 [NOIP][C++]洛谷P1046 [NOIP 2005 普及组] 陶陶摘苹果
题目描述陶陶摘苹果问题:给定10个苹果的高度和陶陶伸手可达到的高度(可站在30厘米高的板凳上),计算她能摘到的苹果数量。输入包括两行:第一行是10个100-200厘米的苹果高度,第二行是陶陶100-120厘米的伸手高度。输出能摘到的苹果数。 题解思路:将陶陶的伸手高度加上板凳高度30厘米,然后统计苹果高度小于等于该值的数量。代码使用数组存储苹果高度,遍历比较并计数。样例输入输出验证了算法的正确性。
2025-07-07 22:25:25
622
原创 [NOIP][C++]洛谷P1035 [NOIP 2002 普及组] 级数求和
题目要求计算最小的n使得调和级数Sₙ=1+1/2+...+1/n大于给定的整数k。通过循环不断累加1/i,直到总和超过k时输出当前的i值。解法使用双精度浮点数存储部分和,逐步增加分母i直至满足条件。数据范围限制k≤15,保证算法效率。代码简洁高效,直接模拟调和级数的增长过程。输入样例k=1时,输出2(1+0.5=1.5>1)。
2025-07-07 22:23:33
942
原创 [NOIP][C++]洛谷P1006 A+B Problem
这篇题目是经典的A+B Problem,要求输入两个整数并输出它们的和。题目强调算法竞赛的严格输出格式要求:不能包含任何多余信息或提示文字,否则会被判为错误。特别提醒了Pascal语言的数据溢出风险、负数的处理以及C/C++程序的返回值要求。输入是两个空格分隔的整数,输出仅需一个整数结果。文末提供了C++的标准解法代码示例,简洁明了地实现了题目要求。
2025-07-07 22:22:02
458
原创 [FMZ][JS]50行精简网格策略
网格策略就是在震荡行情当中,靠捕捉价格震荡,价格高即把标的物卖出,回落即把标的物买入,来获取差价盈利的策略。
2025-07-04 17:09:18
488
原创 [FMZ]数字货币程序化交易简介
大部分数字货币交易所都提供了程序化交易API接口。就可以获取变交易所BNBBTC交易对24h的Ticker数据了。通过访问和提交相应的数据接口,可以获取指定的行情数据,然后再通过交易策略分析买卖需求,最后调用API接口下达交易指令。
2025-07-04 16:34:17
261
原创 [FMZ][JS]第一个回测程序--让时间轴跑起来
因此我们需要一个死循环,一个时间,和一个执行函数。回测程序的第一件事:让它跑起来。,只不过是通过死循环来实现的。
2025-07-04 00:23:34
250
RSS订阅