自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 栈和链表的区分

定义了一个整数类型的栈,并依次将1至n压入栈中。然后显示栈的大小,访问并打印栈顶元素但不移除。接下来,我们将栈顶元素逐一出栈并打印,直至栈为空。最后检查栈是否为空并输出结果。来实现,但栈关注的是。操作,而链表关注的是。

2024-04-30 18:26:48 207

原创 #include <string>的用法

类提供了对文本字符串的强大支持,相比C语言中的字符数组(char[] 或 char*)更加方便易用,它是一个。:可以使用多种方式创建字符串对象,如通过字面值、字符数组、另一个字符串对象或字符迭代器范围。极大地简化了C++中字符串的操作,提高了程序的稳定性和安全性,同时也提升了开发效率。包含了C++标准库中的字符串类——std::string的定义及相关函数。:可以方便地转换为C风格字符串(char*)或从C风格字符串转换,使用。对象能够存储任意长度的文本字符串,包括空字符串。)用于字符串间的比较。

2024-04-30 17:50:46 178

原创 动态规划与搜索算法

动态规划往往涉及记忆化(Memoization)或填表,存储已经计算过的子问题答案以减少重复计算。搜索算法中也有类似的概念,如记忆化搜索,但它更侧重于避免回溯过程中的重复状态探索。:动态规划往往需要额外的空间存储中间结果,搜索算法则通常需要栈(DFS)或队列(BFS)来跟踪搜索路径,两者都会占用额外空间,但动态规划的记忆化表一般会更大。,并计算子问题的解,然后通过组合子问题的解来构造原问题的解。:动态规划主要用于求解最优化问题,而搜索算法主要用于找到从起点到终点的路径或其他满足条件的状态。

2024-04-29 23:53:19 376

原创 stoll函数和std::to_string函数

std::to_string`函数是C++11引入的标准库函数,它可以将各种内置数值类型(如`int`、`long long`、`float`、`double`等)转化为对应的字符串表示形式。举例来说,如果`x`的值是123,执行上述语句后,字符串`t`将存储"123"这个字符串。在C++编程语言中,`string t = to_string(x);如果字符串无法转换为整数,例如包含非法字符或者数值超出。(假设这里的`x`是一个整数或浮点数)是一个有效的十进制数字符串,中的一个函数,全称为。

2024-04-29 18:24:36 345

原创 二分查找和二分答案

二分查找(Binary Search)和二分答案(Binary Search for Answer)是两种不同的算法思想,尽管它们都基于,但应用场景和目的有所不同。

2024-04-28 17:08:05 236

原创 游游的选数乘积

输入描述:第一行输入两个正整数n和x,代表数组的大小以及乘积末尾0的数量。第二行输入n个正整数ai​,代表游游拿到的数组。游游拿到了一个数组,她准备在其中选择两个数,使得乘积的末尾至少有x个0。游游想知道,至少有多少种不同的取数方法?输出描述:输出一个整数,代表游游选择的方案数。

2024-04-28 15:49:14 194

原创 P1996 约瑟夫问题与线性表

2.链表(Linked List):与顺序表不同,链表中的元素在内存中不必连续存放,每个元素(节点)包含两个部分:存储数据的部分和指向下一个元素(节点)的指针(对于双向链表还包括指向前一个元素的指针)。nn 个人围成一圈,从第一个人开始报数,数到 mm 的人出列,再由下一个人重新从 11 开始报数,数到 mm 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。- `std::vector`:这是一个动态数组,属于顺序表,提供了数组的直接访问性能,同时又有自动扩容的能力。

2024-04-28 13:43:57 372

原创 二维差分与二维前缀和

通过计算原数组中相邻元素的差异,形成差分数组,从而支持对原数组中任意子矩阵元素进行快速的加法或减法操作,特别适用于需要频繁修改子区域元素值且需要频繁查询子区域和的应用场景,如动态规划问题、图像处理等。:在一些基于子矩阵操作的算法中,如最大子矩阵和、连续子数组的最大和等,二维前缀和可以显著提高算法的效率。的实际值,通常会结合使用二维前缀和(也称为累加和矩阵),通过双重累积的方式快速计算出任意子矩阵的和。:结合二维差分技术,可以在常数时间内对原矩阵中的子矩阵元素进行增减操作,并保持二维前缀和的有效性。

2024-04-27 15:12:42 1023

原创 【模板】二维前缀和和最长上升子序列

【代码】【模板】二维前缀和和最长上升子序列。

2024-04-27 14:57:24 147

原创 【模板】二维差分

尽管它看起来似乎没有任何作用,但在某些场景下仍然有意义,如占位、满足语法要求或与外部接口对接时保持一致等。是 C 标准库中的一个函数,用于向标准输出设备(通常是终端屏幕)输出一个字符串,并在字符串末尾自动添加换行符(这一行代码的作用就是向标准输出设备输出一个空字符串,并在其后添加一个换行符。然而,在大多数实际编程场景中,如果单纯是为了输出一个空行,通常会选择使用更直接的。是一条用于输出空字符串的语句,和cout

2024-04-27 14:43:56 198

原创 【模板】完全背包和01背包

状态转移方程:完全背包直接基于同一行的不同容量状态进行转移,而01背包需要回溯到前一行进行状态转移。决策过程:完全背包每种物品可以按照任意数量放入背包;01背包则只能决定是否放入整件物品。物品数量限制:完全背包允许每种物品无限取用,而01背包每种物品仅有一件可选。

2024-04-26 23:21:58 328

原创 最长上升子序列

【代码】【模板】最长上升子序列。

2024-04-26 20:20:17 167

原创 【模板】前缀和和差分

【代码】【模板】前缀和和差分。

2024-04-25 23:52:13 285

原创 排列对称串

Description:很多字串,有些是对称的,有些是不对称的,请将那些对称的字事按从小到大的顺序输出,字事先以长度论大小,如果长度相同,再以ASCI码值为大小标准。这种情况下,无法实现回车两次直接输出结果,借助Ctrl+z两次输出结果,跳出循环。Input.输入数据中含有一些字串(1≤串长≤256)。这个时候可以直接借助两次回车将结果输出。的类,构造函数接受一个。,初始化私有成员变量。

2024-04-25 08:00:00 657

原创 小美打怪(动态规划)

小美在玩游戏,游戏中有 n 个怪物,怪物的血量为 h,攻击力为 ai​。小美的血量为 H,攻击力为 A,小美可以击败血量和攻击力都小于自己的怪物,并且打败后血量降为怪物的血量,攻击力降为怪物的攻击力。小美的血量(H)和攻击力(A)可以理解为背包的“容量”,每次击败一个怪物后,小美的血量和攻击力都会变成被击败怪物的血量和攻击力,这意味着每次决策都会影响后续决策的可行性和收益。怪物的血量(h)和攻击力(ai)可以看作是背包问题中的“物品”,每个怪物对应一个物品,物品的“价值”是击败怪物的数量(1个单位)。

2024-04-24 13:12:25 518

原创 伐木机不要石头!!!

你面前是 n棵排成一列的树,每棵树的坚硬程度为 ai,第一棵树的位置位于 1号点,第二棵位于 2号依次类推,直到第 n棵树。而你背包里的无敌手斧有 m个,每个的破坏程度为 bj,当一个无敌手斧的破坏程度不小于一棵树的坚硬程度时,无敌手斧可以将这棵树砍倒,砍倒后你就可以拿走这棵树的木材。那聪明的博士就会想了:如果博士想使用无敌手斧砍伐位置在 1到 n 这段区域内的树木,最多可以带走多少棵树的木材呢?输入描述:第一行输入二个数 n,m 别表示树的棵数,无敌手斧的个数。说明:第 1 棵树可以匹配上第 1个手斧。

2024-04-24 09:59:29 216

原创 贪心,DFS:小美的树上染色

接下来的n−1行,每行输入两个正整数u,v,代表节点u和节点v有一条边连接。小美有若干次操作,每次操作可以选择两个相邻的节点,如果它们都是白色且权值的乘积是完全平方数,小美就可以把这两个节点同时染红。请注意,此时不能再染红第一个和第二个节点,因为第二个节点已经被染红。输出描述:输出一个整数,表示最多可以染红的节点数量。是一个二维数组,用于存储每个顶点的两个不同状态的值。的乘积的平方根,如果平方根的平方等于原始乘积,则将。为根的子树中,不包含直径的最大边权和,而。循环读取每条边的信息,构建图的邻接表。

2024-04-23 10:17:44 418

原创 背包问题:小红不想做完全背包

本题和hard版本的唯一区别是:p保证等于3。完全背包是一个经典问题,但小红完全不会完全背包,因此她不想做完全背包。现在小红拿到了一个长的很像完全背包的题,她希望你帮她解决一下。给定一个背包,有n种物品,每种物品的价值为ai,有无穷多个。小红有一个无穷大的背包她希望往里面放若干个物品,使得最终所有物品的价值之和为p的倍数。小红想知道最终至少要放多少物品?

2024-04-22 23:13:23 722

原创 n!的位数:面向对象的解法

Output:根据每个整数n,输出其n!的位数,每个数占独立一行。Output:重新排列01串的顺序。使得串按基本描述的方式排序。阶乘的大小,进而确定它有多少位数。直接计算大整数的阶乘会非常耗时且可能超出内存限制。一个更有效的方法是通过。通过向量存放数据,然后依次循环调用函数,但是输出还是有点小问题,跳出循环的条件无法实现。Description:针对每个非负整数n,计算其n!Input:输入数据中含有一些整数n(0≤n

2024-04-22 18:31:19 259

原创 C++期末考试注意点2

静态成员函数都不行,因为它不捆绑对象,同样,构造函数也不行因为它只产生对象,也不捆绑对象,可是,析构函数却可以是虚函数。一旦有了虚函数,就不可能是内联函数。纯虚函数是在声明虚函数时被“初始化”为0的函数。如果在一个类中声明了纯虚函数,而在其派生类中没有对该函数定义,则该虚函数在派生类中仍然为纯虚函数。②最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统这是纯虚函数”;③这是一个声明语句,最后应有分号纯虚函数只有函数的名字而不具备函数的功能,不能被调用。①纯虚函数没有函数体;

2024-04-21 12:58:37 443

原创 C++期末考试注意点

函数重载和运算符重载实现的多态性属于静态多态性,在程序编译时系统就能决定调用的是哪个函数因此静态多态性又称编译时的多态性。静态多态性是通过函数的重载实现的(运算符重载实质上也是函数重载)。默认拷贝构造函数体一定是空的。拷贝构造函数体的工作不负责位对位对象般来它负责资源分配和由复制,说此而来的指针修改。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。动态多态性是在程序运行过程中才动态地确定操作所针对的对象。动态多态性是通过虚函数实现的。

2024-04-21 10:33:37 407

原创 小红的排列构造(dp优化)

小红拿到了一个长度为n的数组a,她希望你构造两个排列p和q,满足对于i∈[1,n],ai∈[1,n]pi或qi二选一。定义排列是一个长度为n的数组,其中1到n每个元素恰好出现1次。输出描述:如果无解,请输出-1。否则第一行输出n个正整数pi,第二行输出n个正整数qi,代表小红构造的两个排列。(i)++)类似于定义了一个模板,效率更高。输入描述:第一行输入一个正整数n,代表两个数组的长度。

2024-04-20 09:53:51 641

原创 小红升装备(动态规划)

接下来的n行,每行输入5个正整数atti,pricei,costi,upgradei,lvmaxi分别代表装备初始战力,购买该装备需要的金币、升1级花费的金币、升1级提升的战力、最高可以提升的等1≤n,x≤300,1≤atti,pricei,costi,upgradei,lvmaxi≤10^9。在给定了每个装备初始的战力,购买每个装备的价格,每个装备强化一级花费的金币和可以提升的战力,以及每个装备最大可以提升的等级。)之间的同步开销,用于提高IO密集型程序的性能,从而加快程序读取输入和打印输出的速度。

2024-04-19 15:15:59 605

原创 2^x modn=1

Give a number n, find the minimum x that satisfies 2^x mod n = 1.Input One positive integer on each line, the value of n.Output If the minimum x exists, print a line with 2^x mod n = 1.Print 2^? mod n = 1 otherwise.You should replace x and n with s

2024-04-18 15:21:01 239 1

原创 面向对象的C++题目以及解法2

01串排序将01串首先按长度排序,长度相同时,按1的个数多少进行排序,1的个数相同时再按ASCI码值排序。输入数据中含有一些01串,01串的长度不大于256个字符。重新排列01串的顺序。使得串按基本猫述的方式排序。

2024-04-16 23:05:56 708

原创 动态规划:小美的元素删除

输入描述:第一行输入两个整数 n,k(1≤k≤n≤10^3)表示数组长度,删除的元素数量。第二行输入 n 个整数表示数组 a(1≤ai≤10^9)。小美有一个数组,她希望删除kkk个元素,使得剩余的元素两两之间互为倍数关系。输出描述:输出一个整数表示答案。方案2:删除1,4,3,7。方案3:删除1,3,6,7。方案4:删除4,2,3,6。方案5:删除4,2,3,7。方案6:删除4,2,6,7。方案7:删除4,3,6,7。方案8:删除2,3,6,7。方案1:删除1,4,2,7。

2024-04-16 13:22:26 219

原创 友元函数、成员函数和普通函数使用上的不同

设计并测试一个矩形类(Rectangle),属性为矩形的左下与右上角的坐标,矩形水平放置。操作为计算矩形周长与面积。类对象的数据由友元函数来进行访问,并对比友元函数、成员函数和普通函数使用上的不同。

2024-04-16 11:30:00 267

原创 模拟与高精度:最大乘积

一个正整数一般可以分为几个互不相同的自然数的和,如 3=1+2,4=1+35,=1+4=2+3,6=1+5=2+4。现在你的任务是将指定的正整数 nn 分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。输出格式第一行是分解方案,相邻的数之间用一个空格分开,并且按由小到大的顺序。第二行是最大的乘积。输入格式 只一个正整数 n,(3≤n≤10000)。

2024-04-15 12:56:08 481 1

原创 函数与结构体

给定一个集合 s(集合元素数量≤30),求出此集合所有子集元素之和。输入格式 集合中的元素(元素≤1000)输出格式 s 所有子集元素之和。输入输出样例2 310说明/提示子集为:∅,{2},{3},{2,3},和为 2 + 3 + 2 + 3 = 10。对于100% 的数据,1≤∣s∣≤30,s 所有子集元素之和 ≤10^18。

2024-04-15 12:07:10 359

原创 蓝桥杯(基础题)

小球碰到长方形的边框时 会发生反弹,每次反弹的入射角与反射角相等,因此小球会改变方向且保持速 率不变(如果小球刚好射向角落,则按入射方向原路返回)。从小球出发到其第 一次回到左上角顶点这段时间里,小球运动的路程为多少单位长度?答案四舍 五入保留两位小数。这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个小数,在提交答案时只填写这个小数,填写多余的内容将无法得分。在其内部左 上角顶点有一小球(无视其体积),其初速度如图所示且保持运动速率不变,分 解到长宽两个方向上的速率之比为。

2024-04-14 09:47:18 4083 5

原创 蓝桥杯:握手问题和小球反弹问题

大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进。这是一道结果填空的题,你只需要算出结果后提交即可。个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。人以外的所有人进行了握手)。请问这些人之间一共进行了多。小蓝组织了一场算法交流会议,总共有。行一次握手(且仅有一次)。握手了,所以算作是一次握手。人彼此之间没有进行握手

2024-04-14 08:52:18 551 1

原创 顺序结构(入门题)

学校要求必须在上午8:00 到达,请计算在不迟到的前提下,y最晚能什么时候出门。输出格式为 HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0。学校和 y的家之间的距离为 s米,而 y 以 v米每分钟的速度匀速走向学校。由于路途遥远,y可能不得不提前一点出发,但是提前的时间不会超过一天。在上学的路上,y还要额外花费 10 分钟的时间进行垃圾分类。输出一个 24小时制下的时间,代表 y最晚的出发时间。一行两个正整数 s,v,分别代表路程和速度。对于100% 的数据,1≤s,v≤10^4。

2024-04-13 11:30:03 417

原创 数据结构:线性表

有n(n≤2×106) 名同学陆陆续续进入教室。我们知道每名同学的学号(在 11到 10^9 之间),按进教室的顺序给出。上课了,老师想知道第 ii 个进入教室的同学的学号是什么(最先进入教室的同学 i=1),询问次数不超过 10^5 次。

2024-04-12 23:53:11 427 1

原创 深度优化搜索,字典树

小红来到了一个n∗m的矩阵,她初始站在左上角,每次行走可以按“上下左右”中的一个方向走一步,但必须走到和当前格子不同的字符,也不能走到矩阵外。小红想知道,从左上角走到右下角最少需要走多少步?

2024-04-12 20:26:14 929

原创 二叉树和数据结构

2. 除了根节点以外,每个节点的权值和它父亲的权值的乘积为偶数。请你帮小红构造出这个二叉树,并按层序遍历的方式打印所有节点。一个正整数 n,代表二叉树的节点数量。输出一行n个正整数,代表小红构造的二叉树的层序遍历的序列。1. 所有节点的权值值为 1 ~ n 的一个排列。显然,任意节点和它父亲权值的乘积都是偶数。

2024-04-11 21:37:15 479

原创 高精度:[NOIP1999]回文数

高精度:[NOIP1999]回文数题目描述若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。又如:对于10进制数87:语言题:统计数字题目描述小明前几天看书看累了,脑海中突然闪过,这书的页码也很可爱啊。一本书的页码从自然数1按自然顺序编码到n.每个页码不会含有多余的前导数字0.例如,第6页用数字6表示,而不是06、006表示。

2024-04-11 15:17:24 538

原创 小红的白色字符串

小红拿到了一个字符串,她准备将一些字母变成白色,变成白色的字母看上去就和空格一样,这样字符串就变成了一些单词。现在小红希望,每个单词都满足以下两种情况中的一种:1.开头第一个大写,其余为小写(长度为 1 的大写字母也是合法的)。2.所有字符全部是小写。小红想知道,最少需要将多少字母变成白色?

2024-04-10 23:55:32 219 4

原创 贪心算法:排列算式

给出n数字,对于这些数字是否存在一种计算顺序,使得计算过程中数字不会超过3也不会小于0?

2024-04-10 23:43:46 550

原创 面向对象的C++题目以及解法

Description:自然数中,完数寥若晨星,请在从1到某个整数范围中打印出所有的完数来。而24不是完数,因为24≠1+2+3+4+6+8+12=36。Output:对于每个整数n,输出所有不大于n的完数。每个整数n的输出由n引导,跟上冒号,然后是由空格开道的一个个完数,每个n的完数列表应占独立的一行。一个整数n的因子数为包含它自身的所有因子的个数。例如:12的因子数为6(1,2,3,4,6,12)。Output:对于每个n,列出其所有因子数,每个n加上冒号单独列一行。

2024-04-09 21:22:33 1447

原创 自然数的拆分问题

任何一个大于 1的自然数 n,总可以拆分成若干个小于 n 的自然数之和。现在给你一个自然数 n,要求你求出 n 的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。输入:待拆分的自然数 n。输出:若干数的加法式子。数据保证,2≤n≤8。

2024-04-09 13:46:02 252 1

空空如也

空空如也

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

TA关注的人

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