
C++
文章平均质量分 75
C++从入门到入土
CN-Dust
WAWAWA
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C++】【NOIP】洛谷|P1098 [NOIP 2007 提高组] 字符串的展开
题目摘要: 本题要求对输入字符串中的减号-进行展开处理,需满足特定条件:减号两侧同为字母或数字且右侧ASCII码严格大于左侧。展开方式由三个参数控制: p1决定字母大小写或替换为* p2控制填充字符的重复次数 p3决定正序或逆序展开 需处理特殊情况(如字符连续时仅删除减号,不满足条件时保留减号)。输入含参数字符串,输出展开后的字符串。例如,输入1 2 1和abcs-w1234-9s-4zz,输出abcsttuuvvw1234556677889s-4zz。原创 2025-10-07 23:35:16 · 912 阅读 · 0 评论 -
【C++】队列queue的使用
本文介绍了C++中队列(queue)的基本用法。主要内容包括队列的声明语法、常用操作函数及其功能说明,如empty()、size()、push()、pop()等,并提供了完整的示例代码演示这些操作的实际使用。示例展示了如何创建队列、添加元素、访问首尾元素以及清空队列,最后给出了程序运行结果的截图。文章简明扼要地总结了C++队列的核心知识点,适合快速了解队列的基本操作。原创 2025-09-14 22:08:17 · 165 阅读 · 0 评论 -
【C++】String类的使用
C++标准库中的<string>头文件提供了std::string类,用于安全高效地处理字符串。它支持基本操作如初始化、连接、访问字符,以及常用成员函数如size()、empty()、find()、substr()和replace()。示例代码展示了字符串长度获取、赋值、连接、查询、子串提取和替换等操作,体现了其易用性和功能性。std::string相比C风格字符串更安全便捷,是C++中处理字符串的首选工具。原创 2025-09-14 15:38:15 · 429 阅读 · 0 评论 -
【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 · 732 阅读 · 0 评论 -
【C++】CodeBlocks代码格式化自定义&格式化快捷键(中文UI)
摘要:本文介绍了如何在CodeBlocks中自定义代码格式化风格和设置快捷键。首先通过"设置→AStyle插件"选择花括号风格(如JAVA风格)和空格填充方式,然后在"键盘快捷键"中为"源代码格式化"功能设置快捷键。这些操作可以帮助开发者快速将代码按个人偏好进行标准化排版。(99字)原创 2025-09-08 15:46:41 · 282 阅读 · 0 评论 -
[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 · 974 阅读 · 0 评论 -
【C++】邻接表
通常用vector其中maxn是节点数量的最大值,adj[v]表示节点v的所有邻居组成的列表。原创 2025-08-03 15:28:47 · 677 阅读 · 0 评论 -
【C++】指针
本文介绍了C++中指针的基本概念和使用方法。指针是一个存储变量内存地址的变量,通过&获取地址,使用*访问地址值。文章演示了指针声明、变量地址赋值、指针值访问等操作,并展示了指针重新指向其他变量时的变化。同时指出直接给指针赋值会导致错误,而通过指针修改其指向变量的值是可行的。指针操作是C++编程中的重要技能,可以帮助实现动态内存分配等高级功能。原创 2025-07-29 22:40:22 · 530 阅读 · 0 评论 -
【C++】判断语句
本文介绍了C++中的判断语句和三目运算符。主要内容包括:if/else条件判断、嵌套if语句、switch多分支选择结构及其嵌套用法;并展示了条件运算符(?:)实现的三目运算,通过示例说明其"条件?表达式1:表达式2"的语法特点。这些基础控制结构是C++程序流程控制的重要组成部分。原创 2025-07-29 22:07:13 · 323 阅读 · 0 评论 -
【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 · 677 阅读 · 0 评论 -
【C++】定义常量
C++中定义常量的两种方法:1)使用#define预处理器指令,在预处理阶段进行文本替换;2)使用const关键字声明类型安全的常量。两种方法都能成功定义常量,但const更安全且支持类型检查。示例展示了如何用这两种方法定义长度、宽度常量并计算面积,结果均为50。良好的编程习惯建议将常量名称全部大写以便识别。原创 2025-07-26 23:13:28 · 272 阅读 · 0 评论 -
【C++】位运算符
摘要:本文介绍了位运算符的基本操作,包括与(&)、或(|)和异或(^)的真值表,并展示了这些运算符在二进制数上的应用示例。以A=60(00111100)和B=13(00001101)为例,详细计算了A&B、A|B、A^B和~A的二进制结果。这些运算在位级数据处理中具有重要作用,能够实现高效的位操作功能。原创 2025-07-26 17:32:31 · 190 阅读 · 0 评论 -
【C++】数据类型
菜鸟教程传送门菜鸟教程里讲的太全面了,很多数据类型我们平常都用不上,因此写一篇笔记记录常用的数据类型。C++需要在变量被定义时就赋予其类型——为它开辟一部分内存空间。原创 2025-07-26 16:43:04 · 1045 阅读 · 0 评论 -
[NOIP][C++]洛谷P1364|啊哈添柴 12044. 医院的设置
摘要 题目要求在二叉树中选择一个节点建立医院,使得所有居民到医院的路径总和最小。采用树的重心算法解决:首先计算各子树大小和最大分量值以确定重心节点,再以重心为根计算加权路径和。输入包括节点数及每个节点的人口、左右子节点信息,输出最小路径和。样例输入5个节点,输出最小路径和81。通过两次DFS遍历——第一次确定重心,第二次计算路径和——实现高效求解。原创 2025-07-16 23:12:29 · 312 阅读 · 0 评论 -
[NOIP][C++]洛谷 P1395 会议(树的重心)
摘要 本文解决了一个在树形村庄中选择最佳会议地点的问题。给定n个村民和n-1条连接路径构成的树形结构,要求找到一个村民家作为会议地点,使得所有村民到该点的距离之和最小。通过两次深度优先搜索(DFS)实现:第一次DFS计算子树大小并确定树的重心(最优会议点),第二次DFS计算该点到所有其他点的距离之和。算法时间复杂度为O(n),适用于大规模数据(n≤5×10^4)。最终输出最优会议点编号及最小距离和,若有多解则选择编号最小者。原创 2025-07-16 22:58:39 · 1182 阅读 · 0 评论 -
[NOIP][C++] 树的重心
树的重心是指删除该点后,剩余连通分量中节点数的最大值最小的点。通过DFS遍历树结构,计算每个节点作为候选重心时的最大连通分量大小,最终选择使该值最小的节点作为重心。代码实现了这一算法,输入树结构后输出重心节点编号。原创 2025-07-16 21:38:28 · 442 阅读 · 0 评论 -
[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 · 127 阅读 · 0 评论 -
[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 · 946 阅读 · 0 评论 -
[NOIP][C++]洛谷P1006 [NOIP 2008 提高组] 传纸条
【P1006 [NOIP 2008 提高组] 传纸条 - 洛谷】https://www.luogu.com.cn/problem/P1006。原创 2025-07-10 21:12:31 · 750 阅读 · 0 评论 -
[NOIP][C++]洛谷P1376 [USACO05MAR] Yogurt factory 机器工厂
摘要 题目描述了一个机器工厂需要在N周内完成订单的问题,每周生产成本和订单需求不同,可以选择提前生产并支付存储费用。解题关键是使用贪心算法,比较每周生产与提前生产的总成本,选择最小值。核心代码通过双重循环计算最优成本,特别要注意使用long类型避免溢出。样例输入4周数据,输出最小成本126900。解题要点包括:贪心选择策略、成本比较、数据类型选择(避免int溢出)。原创 2025-07-08 22:30:32 · 801 阅读 · 0 评论 -
[C++] 牛客网:合并两个有序的数组
主要是体验一下牛客网里的核心代码模式到底是怎么弄的。。还有C++这个东西平常用的太少了,试一试。以外的还体验到了sort()函数的使用。来源:牛客网题目链接:合并两个有序的数组知识点:数组、双指针描述给出一个整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组数据范围:注意:保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n不要返回合并的数组,将数组 B 的数据合并.原创 2021-09-28 10:09:13 · 359 阅读 · 0 评论 -
[C++][稀土掘金] 资源分配
某工业生产部门根据国家计划的安排,拟将某种高效率的5台机器,分配给所属的3个工厂A,B,C,各工厂在获得这种机器后,可以为国家盈利的情况如表4-10所示。问:这5台机器如何分配给各工厂,才能使国家盈利最大?解题思路:这不就是一个搜索?这个叫啥?贪心?解题代码:#include<cstdio>#include<iostream>using namespace std;int main(){ int a[6][3]={.原创 2020-06-22 18:08:18 · 5611 阅读 · 2 评论 -
最佳浏览路线问题
问题描述:解题思路:看完题就觉得很ez……不就是找出每一列最大的数吗??解题代码:#include<cstdio>#include<iostream>using namespace std;int main(){ int a[3][5]={50,47,36,-30,-23,17,-19,-34,-43,-8,-42,-3,-43,34,-45}; int i,j; int sum=0; int maxm=0;原创 2020-06-22 17:53:12 · 498 阅读 · 0 评论 -
[NOIP][C++]洛谷P1151 子数整数
题目要求找出10000到30000之间所有满足条件的五位数:该数的前三位、中间三位和后三位组成的子数都能被给定整数K整除。程序遍历这个范围内的所有五位数,分解出三个子数并检查是否能被K整除,满足条件的则输出。若无解则输出"No"。例如输入15时,输出22555等4个符合要求的数。原创 2025-07-07 22:37:54 · 449 阅读 · 0 评论 -
[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 · 527 阅读 · 0 评论 -
[NOIP][C++]洛谷P1089 [NOIP 2004 提高组] 津津的储蓄计划
摘要 题目描述了一个储蓄计划:津津每月获得300元,根据月度预算管理零花钱。如果月末剩余≥100元,就将整百金额存入妈妈处(年末获得20%利息)。程序需要判断12个月内是否会因预算不足而出现资金短缺,若发生则输出首次出现的月份(负号表示);否则计算年末总金额(包括储蓄本金加利息)。输入为12个月的预算,输出为资金短缺月份或年末总金额。样例1因第7月预算不足输出-7,样例2能顺利完成计划输出1580。原创 2025-07-07 22:34:19 · 772 阅读 · 0 评论 -
[NOIP][C++]洛谷P1085 [NOIP 2004 普及组] 不高兴的津津
这是一道关于判断津津一周中最不高兴的是哪一天的简单程序设计题。题目输入7天的学校上课时间和课外上课时间,要求计算每天总上课时间超过8小时的最不高兴的一天(若有多个,取最早的一天)。题解使用循环遍历7天数据,记录总时间超过8小时且最大的那一天,最后输出结果。若没有超过8小时的情况则输出0。原创 2025-07-07 22:32:51 · 500 阅读 · 0 评论 -
[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 · 582 阅读 · 0 评论 -
[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 · 932 阅读 · 0 评论 -
[NOIP][C++]洛谷P1006 A+B Problem
这篇题目是经典的A+B Problem,要求输入两个整数并输出它们的和。题目强调算法竞赛的严格输出格式要求:不能包含任何多余信息或提示文字,否则会被判为错误。特别提醒了Pascal语言的数据溢出风险、负数的处理以及C/C++程序的返回值要求。输入是两个空格分隔的整数,输出仅需一个整数结果。文末提供了C++的标准解法代码示例,简洁明了地实现了题目要求。原创 2025-07-07 22:22:02 · 438 阅读 · 0 评论 -
[NOIP][C++]洛谷P1046 [NOIP 2005 普及组] 陶陶摘苹果
题目描述陶陶摘苹果问题:给定10个苹果的高度和陶陶伸手可达到的高度(可站在30厘米高的板凳上),计算她能摘到的苹果数量。输入包括两行:第一行是10个100-200厘米的苹果高度,第二行是陶陶100-120厘米的伸手高度。输出能摘到的苹果数。 题解思路:将陶陶的伸手高度加上板凳高度30厘米,然后统计苹果高度小于等于该值的数量。代码使用数组存储苹果高度,遍历比较并计数。样例输入输出验证了算法的正确性。原创 2025-07-07 22:25:25 · 600 阅读 · 0 评论