- 博客(61)
- 收藏
- 关注
原创 数字每k位标注逗号—c++
给定一个很长的数字,希望你每 k 位标注一个逗号,然后输出最终的数字。对于 100% 的数据: 1≤n≤100000,1≤k≤n。第一行输入两个正整数 n,k,表示数字的长度和 k 的值。数据范围 对于 20% 的数据:1≤n≤10。对于 80% 的数据: 1≤n≤1000。一个数字,表示加过逗号之后的数字。
2025-02-04 20:12:51
306
原创 店铺比赛——贪心问题
第二行为 n 个整数,第 i 个数为 a i ,表示小X·每个店铺的评分,数字从小到大给出。第三行为 n 个整数,第 i 个数为 b i ,表示小X的对手每个店铺的评分,数字从小到大给出。现在,请你帮助小X计算,在所有可能的比赛顺序下,他能够得到的最大积分是多少。一个整数,包含一个整数,即小X在 n 轮比赛后可以得到的最大积分。比赛共 n 轮,每轮双方各选择一家店铺进行评分比较。每个人都有 n 家店铺,每家店铺都有一个大众评分。经过 n 轮的激烈竞争后,积分较高的一方获胜。
2024-12-29 17:14:32
144
原创 超千万用户选择AI恋爱,未来伴侣的模样将是什么?
数据显示,年轻人对AI的接受度相当高,超过4成的年轻人表示,每天都会使用AI服务,尤其是00后却占据了46.7%的份额,95后紧随其后,达到42.9%。虽然我们常把AI与互联网结合在一起,但在使用频率方面,却发现仅有51.7%的互联网工作者几乎每天使用AI。随着人工智能技术的日渐成熟,特别是在自然语言处理和情感识别等领域的突破,越来越多的AI应用程序开始展现出类人社交特质。从语言、互动到情感反应,AI的表现越来越像一个真实的社交伴侣,让许多用户在情感交流中找到陪伴与支持。
2024-12-28 21:35:11
269
原创 单调栈问题
在操作上,单调栈仍然遵循栈的基本规则,即“先进后出”(FILO),但在进行入栈操作时,还需要满足单调性的要求。这意味着在插入新元素时,可能需要将栈顶的元素弹出,直到找到一个合适的位置使得整个栈依然保持单调性。单调栈(Monotone Stack)是一种特殊的栈,它在普通栈的基础上增加了额外的约束条件,即栈内的元素必须保持单调性。二.求每个元素右边第一个比它大的数(输出编号)一.求每个元素左边第一个比它大的数。
2024-12-28 21:30:41
244
原创 组合数练习题——c++
现在有x个相同的小球,分给y个人,每个人至少分k个,请问有多少种可能的分发方法,由于结果可能较大,答案对10^9+7取模。一行3个整数:x,y, k(x<=100000,y<=1000,k<=1000)本题可以采用隔板法的变形,C(n-m-k-1,m-k-1)一个整数表示,答案对10^9+7取模的结果。
2024-11-30 21:31:09
213
原创 文件输入输出——NOI
如果使用 dev-cpp 等 IDE 编写代码,也可以在源代码文件相同的目录下,创建一个输入文件名的同名文件,用记事本打开后,写上样例输入,这样编译运行程序后,会自动创建一个输出文件名的文件,用记事本打开后就是你的程序的输出。文件输出输出是 NOI 系列赛事常见的一种输入输出模式,题目中会写明输入及输出的文件名。写代码时只需要正常完成后,在 main() 函数的开始加入两行语句即可。调试时可以先把这两行注释掉,调试成功后提交前取消注释即可。
2024-11-14 21:22:17
303
原创 代码计算中缀表达式-c++
也可以改变适当修改中缀表达式转为为后缀表达式的代码,将从S1出栈的符号,直接作用于S2栈顶的两个数字。具体代码可分为两个部分:先将中缀转后缀,再计算后缀表达式的结果。即work函数与主函数。
2024-09-17 09:23:24
244
原创 C++实现已知二叉树中序遍历与另一种遍历求后序遍历或前序遍历
3.综上,必须含有中序遍历(确定二叉树左右孩子),先序遍历或者后序遍历任选一个(确定二叉树父子结点),就可以确定一棵唯一的二叉树。2.已知后序遍历,中序遍历序列,能够创建出一棵唯一的二叉树,进而可以得出二叉树的先序序列;1.已知先序遍历,中序遍历序列,能够创建出一棵唯一的二叉树,可以得出二叉树的后序遍历;1.先序遍历(NLR)可以确定二叉树的父子结点;2.中序遍历(LNR)可以确定二叉树的左右子树;3.后序遍历(LRN)可以确定二叉树的父子结点;已知中序遍历和后序遍历,打印先序遍历。
2024-09-07 22:14:07
344
1
原创 动态规划练习
【题目描述】 求有多少长度为 N 的数列 A,满足其元素的取值在1到M范围内,且任意相邻两项之差的绝对值大于等于K,即: 1 ≤ Ai ≤ M (1 ≤ i ≤ N) |Ai - Ai+1| ≥ K (1 ≤ i ≤ N-1) 2 ≤ N ≤ 1000,1 ≤ M ≤ 5000,0 ≤ K ≤ M - 1 请注意,答案可能非常大,请输出除以 998244353 的余数。【样例解释1】 满足条件的数列有以下 6 个:(1,2)、(1,3)、(2,1)、(2,3)、(3,1)、(3,2)
2024-08-28 22:19:14
210
原创 蓝桥杯-评选最佳品牌-c++
例如当 m=5 时,某评委的 评选态度序列为:3、5、1、2、4,则表示该评委:优先投 3 号,当 3 号被淘汰时投 5 号,当 3和 5 都被淘汰时投 1,当 3、5、1 都被淘汰时投 2,仅剩 4 号时才投 4 号品牌的票。选票的序列中可以表示弃权,用 0 来表示,例如当m=5 时,某评委的评选态度序列为3、5、0,则表示该评委:优先投 3 号,当 3 号被淘汰时投 5 号,其它情况下不投任何品牌的票。第二轮投票,3个评委优先选择 1 号品牌,1 个评委选择 2 号品牌,品牌 2 得票最少, 淘汰掉。
2024-08-24 22:52:44
488
原创 csp知识点整理大全
链表,顾名思义,就是带链的表。我已经说过,链表属于数组的加强版。那我们可以借助数组来理解链表:如果说数组是一长排连在一起的“方块”的话,那么链表就是把这些方块“拉开“,每个方块还有两个箭头,分别指向这个方块前面的方块和后面的方块。这样我们就可以理解,为什么链表可以支持随机插入和删除了。从某种意义上来说,这里的每一个方块都是离散的,我们在某两点插入的时候,只需要把要插入的元素,这个元素目标位置前面的元素、后面的元素的箭头改一下,就做到了插入的操作。删除同理。
2024-08-18 21:26:57
3122
2
原创 对于n进制转十进制的解法及代码(干货!)
对于p进制转十进制,我们有:(x)p=a[0]*p^0+a[1]*p^1+a[2]*p^2+...+a[n]*p^n。据此,我们可以编出c++代码来解决问题。举个例子:(11001)
2024-08-01 21:24:46
404
原创 树与图总结(知识点+代码+例题)——c++
树(tree)是包含n(n>=1)个结点,(n-1)条边的有穷集,其中:(1)每个元素称为结点(node);(2)有一个特定的结点被称为根结点或树根(root)。(3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1<=i<=m)本身也是一棵树,被称作原树的子树(subtree)。树也可以这样定义:树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。
2024-07-30 22:32:01
983
原创 c语言知识点
留给谁,当然是a[0]了。在栈中定义一个变量i,比如其地址为0x0012ff7c,大小为sizeof(int)(即4B),那么其下一个“变量”p的地址就是0x0012ff7c-4即0x0012ff78,只是这个地址存放着一个指针,该指针的值为0x0012ff7c,下面又是一个指针,其值为0x0012ff78。3、 在作用范围上,前者的内存地址可以用一个指针表示,假如这个指针是全局变量的话,则一直可以控制这块内存了,事实上,只要这块内存不被释放,那么在程序任何地方,它只要知道该内存的地址,则可以控制它。
2024-07-28 22:05:43
529
原创 简述——计算机四代发展史
由于元器件体积减小、功能增强,使得电脑的体积、重量进一步减小,运算速度和可靠性有了进一步的提高。第四代电脑的硬件部分采用了大规模和超大规模的集成电路作为逻辑元件,采用半导体存储器作为主存储器,辅助存储器采用大容量的软、硬磁盘,并开始引入光盘。第五代电脑与前四代电脑有着本质的区别,它是把信码神息采集、存储、处理、通讯同人工智能结合在一起的智能电脑系统,它不仅能进行数值计算和处理一般的信息,而且主要面向知识处理,具有推理、联想、学习和理解的能力,能帮助人们进行判断、决策、开拓未知的领域和获取新的知识。
2024-07-28 21:57:04
5722
原创 C#与java
为下一代Web服务的首选,这是通过API集来支持Web服务的Java所不能比的。根继承的对象之间的类型统一方面C#提出的box/unbox要比Java的包装类显得高明,效率。,SOAP,UDDI,WSDL等底层协议被构建成了面向开发人员的组件,而Java中这些仍然是。自C#诞生之日起,关于C#与Java之间的论战便此起彼伏,至今不辍。较优势非常明显--C#的目标编译语言IL从设计初始就把效率摆在了重要的地位,而Java的。C#和Java都提出了对传统C++艰深,晦涩的语法语义的现代改良。
2024-07-28 21:54:49
478
原创 phython知识点整理
比如上一节的例子中,ZeroDivisionError 是 ArithmeticError 下的子错误,而 ArithmeticError 又是 Exception 下的子错误(当不清楚错误的类型时,Exception 可以捕获绝大多数错误)。上例中的 self 表示类的实例,所有类内部的方法都需要把该参数放在首位(你也不可不用 self 而使用 this 等,但是 self 是惯例)。这在函数定义时对代码的压缩是显然的。类的重要特性是封装性,即部分变量只能在其内部修改或访问,不能从类的外部进行处理。
2024-07-28 21:46:27
2639
原创 电脑病毒史上的八大经典
和之前的电脑病毒不同,“超级病毒(Stuxnet)”是第一款以工业基础设施为攻击对象的网络蠕虫病毒,通过利用西门子公司控制系统(SIMATICWinCC/Step7)存在的漏洞,感染数据采集与监控系统(SCADA),并向可编程逻辑控制器(PLCs)写入代码,以达到破坏的目的。当然黑客的这番恐吓也并非空穴来风,正如它的名字一样,WannaCry在感染目标机后会自动加密硬盘上的所有文件,几乎涵盖日常所能用到的所有格式:文档、图片、影音、视频,有种让人想哭的感觉。提到病毒,首屈一指的莫过于当年的CIH了。
2024-07-27 21:45:03
2223
原创 java基础知识点
文章涉及体系有些多,建议收藏后慢慢查看注:本文摘自博客园https://www.cnblogs.com/schiller-hu/p/10662429.html一:java概述: 1991年Sun公司的JamesGosling等人开始开发名称为Oak的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:JavaPlatformEnterpriseEdition,开发企业环境下
2024-07-27 20:32:49
468
原创 c++中的快速排序核心代码
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。在最优情况下,快速排序时间复杂度为O(nlogn)。在最坏情况下为O(n^2)快速排序(Quicksort)是对冒泡排序的一种改进。
2024-07-27 20:11:25
257
原创 关于CSP-J/S
那么想要参加CSP-S/J比赛,就得好好准备了,初中阶段的学生可以参加CSP-J和CSP-S,如果在小学阶段就取得CSP-J的获奖证书,初一时可以尽早准备参加CSP-S的比赛,争取在初二时就拿到CSP-S的获奖证书,这样在初三面临中考时,才能全身心地投入到备考学习上,也不耽误高中参加NOIP比赛。答:CSP-J/S是由CCF主办的计算机非专业级别的软件能力认证。当然,如果从初中开始参加CSP-J的比赛也不算晚,初中生的学习能力和效率要比小学生强一些,在备赛过程中所花的时间和精力会相对少一些,通过率也高。
2024-06-09 22:47:49
1173
1
原创 归并排序-成绩输出-c++
【输入】 输入第一行为一个整数,n,表示人数。(1 ≤ n ≤ 100000) 输入第二行为空格隔开的n个整数,即每个人的成绩(1 ≤ 每人成绩 ≤ 1000000)按学号从小到大依次输入n个人的成绩,按成绩从大到小输出每个人的学号,成绩相同时学号小的优先输出。【输出】 输出一行,为空格隔开的n个正整数,即排好序后的每个人的学号。注:摘自hetaobc-L13-4。
2024-06-08 20:38:40
511
2
原创 如何让大模型更聪明?
通过这些方法,可以不断提升大模型的智能,使其更加强大和适应各种任务。当然让大模型变得更聪明是一个多方面的任务,涉及到数据、算法、硬件等多个层面。随着人工智能技术的飞速发展,大模型在多个领域展现出了前所未有的能力,但它们仍然面临着理解力、泛化能力和适应性等方面的挑战。那么,如何让大模型变得更聪明呢?快来分享你的想法吧~通过这些策略和例子,我们可以看到,让大模型变得更聪明是一个持续的过程,需要不断地在数据、算法、硬件和伦理等多个方面进行优化和创新。
2024-06-01 22:33:31
492
原创 动态规划------字符串转换
设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。对任的两个字符串A和B,计算出将字符串A变换为字符串B所用的最少字符操作次数。最后一个字符相同时:f[i][j]=f[i-1][j-1];删除:f[i][j]=min(f[i][j],f[i][j-1]+1);插入:f[i][j]=min(f[i][j],f[i-1][j]+1);字符串A和B的长度均小于2000。否则:f[i][j]=f[i-1][j-1]+1;只有一个正整数,为最少字符操作次数。3、将一个字符改为另一个字符。
2024-05-25 21:01:18
355
原创 hetaozy-2D/2D数列位置问题
【任务描述】一个数列,删掉若干个数后,正好有一些数的数值等于自己所在的位置的编号,比如数列1 1 2 5 4删掉一个1后的数位为:1 2 5 4,其中1在1号位置,2在2号位置,4在4号位置。现给定n个数的数列,求删掉任意个数后,最多能有多少个数的数值等于自己的位置编号。【提示】 用f[i][j]表示在前i个数字剩余j(j<=i)个数的最优值,针对第i个数(a[i]),有留下和删除两种选择。(1<=n<=1000) 第二行n个正整数。【输入样例】 5 1 1 2 5 4。【输出格式】 一个整数,表示答案。
2024-05-25 20:57:07
328
原创 C语言中的七种常用排序
计数排序的基本思想是对于给定的输入序列中的每一个元素 x,确定该序列中值小于 x 的元素的个数(此处并非比较各元素的大小,而是通过对元素值的计数和计数值的累加来确定)。例如,如果输入序列中只有 17 个元素的值小于 x 的值,则 x 可以直接存放在输出序列的第 18 个位置上。当然,如果有多个元素具有相同的值时,我们不能将这些元素放在输出序列的同一个位置上,因此,上述方案还要作适当的修改。插入排序其实就是拿未排序数组中的第一个值,插入到已排序完中的数组的合适位置,来完成排序。
2024-05-19 22:14:23
430
原创 字符串排序——c++
比如ABC与ACDE比较,第一个字符相同,继续比较第二个字符,由于第二个字符是后面一个串大,所以不再继续比较,结果就是后面个串大。比较的时候,从字符串左边开始,一次比较每个字符,直接出现差异、或者其中一个串结束为止。这其实就是说,给你几个字符串,在不改变字符串本身的前提下组合成一个最大的数(或文段)再如ABC与ABC123比较,比较三个字符后第一个串结束,所以就是后面一个串大。所以,长度不能直接决定大小,字符串的大小是由左边开始最前面的字符决定的。题目描述:有n个字符串,将其从大到小依次输出(无空格)
2024-05-19 21:39:33
1188
原创 最大总和——动态规划
本题考查动态规划,可以设fi来存储前i个数组a,再依次累加进行max比较。现有n个整数,想要选出连续的若干个数,使得它们的数值总和最大。第二行n个空格隔开的整数,为每个整数ai对应的数值。一个整数,表示选出连续若干个数的总和最大值。第一行一个整数n,表示有n个整数。
2024-05-18 20:25:17
278
原创 c++知识点复习
1、类的一般形式class 类名 : 继承方式 父类public/private/protected: // 访问控制限制符成员变量;// 构造函数类名(形参表)// 析构函数~类名(void)2、类的访问控制限定符public:公有成员,在任何位置都可以访问private:私有成员,只能在类(自己)的成员函数中访问protected:受保护成员,只能在类(自己)和子类中访问。
2024-05-11 23:11:00
1817
初中三角函数知识点及例题应用
2024-05-20
520-简易爱心绘制代码
2024-05-18
给定n个数找出m个数使得这m个数中的最大值减去最小值不大于x求最大的m
2024-09-28
c++动态规划有没有捷径
2024-08-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人