自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 每天一个实用库函数——sort

默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include<algorithm>或#include<bits/stdc++.h>的c++标准库中,默认使用的排序算法是快速排序。但是很多细心的同学会发现,我们如果出现了降序排序,或者根据结构体数组特定的一个变量排序又该怎么办呢?这就要介绍sort函数的一个大佬功能:判断函数。这里指的事通过这个函数来当排序中“比大小”的依据。

2024-04-04 20:56:19 196

原创 c++常考基础知识(2)

c++中共有63个关键字,其中包括int,char,double等类型关键字,if,else,while,do,等语法关键字,还有sizeof等函数关键字。链表的原理是将每个节点的后面建立一个指针联系下一个节点。栈和队列均由数组模拟,可是栈是先入后出,队列是先入先出。树主要分为二叉树和多叉树,主要使用数组或链表进行模拟。数组,字符串是一种线性表,是c++最基础的数据结构。图是一种进阶版的数据结构,主要用二维数组进行模拟。集合是一群毫无关联的数据的总称。

2024-03-23 21:37:04 341

原创 【c++每天一题】 乒乓球

在 1111 分制下,此时比赛的结果是华华第一局 11 比 0 获胜,第二局 11 比 0 获胜,正在进行第三局,当前比分 1 比 1。而在 21分制下,此时比赛结果是华华第一局 21 比 0 获胜,正在进行第二局,比分 2 比 1。直到分差大于或者等于 2,才一局结束。其中第一部分是 11 分制下的结果,第二部分是 21 分制下的结果,两部分之间由一个空行分隔。华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在 1111 分制和 2121 分制下,双方的比赛结果(截至记录末尾)。

2024-03-12 18:49:38 411 5

原创 c++详解二分查找

第四步,也是最重要的一步:我们首先判断这个数是大于a[mid]还是小于a[mid],因为数组已经有序,如果大于说明a[mid]项以下包括a[mid]都不可能是value。我们就不考虑mid项以下的情况了,就把left左指针更改为mid+1(mid不可能是我们找的那个数)。对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近。第三步:编写结束条件,如果a[mid]==value就说明找到了,返回位置,也就是mid。

2024-02-23 21:28:57 541

原创 【c++每天一题】跳跃游戏

我们遍历到一个节点分别以n,n-1,……,1步往前走,碰到0就结束分支。如果有分支走到最后一个节点说明走到了,输出yes。所有分支都结束了但没有分支到最后一个节点,输出no。无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。给你一个非负整数数组。

2024-02-17 20:17:43 1977 1

原创 c++常考基础知识(1)

(Noip2004普及组初赛,2020年山东省初中信息技术等级考试)4.美籍匈牙利数学家冯·诺依曼对计算机科学发展所做出的贡献是( )。(CSP-S2020提高组初赛)1948年,( )将热力学中的熵引入信息通信领域,标志着信息论研究的开端。图灵被誉为计算机科学之父,人工智能之父,为纪念他出现了计算机学派的最高奖项——图灵奖。戈登·摩尔提出处理器的性能会每两年翻一倍,同时价格下降为原来的一半。将热力学中的熵引入信息通信领域,标志着信息论研究的开端。A.提出理想计算机的数学模型,成为计算机科学的理论基础。

2024-01-17 19:21:57 414

原创 【c++每天一题】有多少种信仰

描述学校有 n 个同学,每个同学有且只有一个信仰并且,(1∼n)编号,给出 m 对有同一信仰的同学,问存在多少种不同的信仰?输入描述输入一个 n 和 m。以下 m 行,每行输入两个数 a,b,代表 a 同学和 b 同学拥有同一信仰。输出描述输出一共有多少种信仰。样例输入 110 42 34 54 85 8样例输出 17提示。

2024-01-17 08:44:07 454

原创 c++时间复杂度详解

熟悉二分算法的人都知道,二分算法最慢的要运行2分之一n次。原来,在计算时间复杂度的时候,普遍使用最不理想的运算次数。其他的都一样,不过要注意的是,时间复杂度一般都只用字母来表示,如果你发现你的时间复杂度有数字(除平方外),比如什么O(3+n),O(n-4)什么的。该来的总是来了,这个程序是递归,怎么算时间复杂度呢?,它定性描述该算法的运行时间。所以这个程序会运行n次,也就是O(n)了~~~O(n^2),因为程序执行了n的平方次。看完了基础的,我们来康康进阶的。中,时间复杂性,又称时间复杂度,

2024-01-16 09:33:26 446

原创 c++详解栈

堆栈又名栈(stack),它是一种运算受限的数据结构(线性表),只不过他和数组不同,数组我们可以想象成一个装巧克力的盒子,你想拿一块巧克力,不需要改变其他巧克力的位置,而栈就相当于是一个只有上方有一个口且宽度只能容纳一块巧克力的盒子,如图:那如果我们想拿最下面的巧克力该怎么办呢?就需要把这颗巧克力上面的所有巧克力都取出,这样才能取出最下面的巧克力。我们可以把栈想象成是一个封了底的数组,要想拿走一个值就需要把它上面的所有值都取出,同理,如果我们想加入一个数据,也只能加到栈的最顶端。这就是栈。

2023-12-08 18:02:14 160 1

原创 【2023年csp-j第二轮】第一题解析

这块需要一点数学知识,就是这个拿苹果的周期为:先从4个里面拿两个,之后就每三个里面拿一个,我们发现小苞一次拿的应该是剩余苹果数的第1,4,7,10,13,16……首先不太建议用,也就是大多数人想的用数组模拟的方法,因为这这种方法不是官方给出的,也不被认为是解题最好的思路,这里就不为大家展示代码了。第三个条件,也有一个公式(找规律可以得出):拿走的苹果数=(总苹果数-1)/3+1.跟据这个公式我们就可以把总苹果数-由公式得出的小苞本轮要拿走的苹果数就可以了。输入的第一行包含一个正整数 n,表示苹果的总数。

2023-11-19 09:13:30 244

原创 c++出现[Error] conflicting declaration ***之类的问题怎么办?

遇到这种错误,那么一定是说明你的变量被重复定义了,比如说你先定义了一个int a,然后又定义了一个int a[100];那么程序就会报: [Error] conflicting declaration 'int a [100]',就是因为你定义了两个名字相同的数据类型。这个程序中名为sum的变量定义了两个,所以我们应该把int的sum或char的sum中一个的变量名换成不与其他变量名冲突的,就可以很好的解决这一问题了!这个程序把int类型的变量名又sum改为了cnt,变量名不冲突,也就不会报错了!

2023-10-13 19:29:30 1501

原创 【c++每天一题】 小小演唱家

去掉一个最高分,去掉一个最低分,将剩下3位评委的打分相加,就是这位选手的最终得分。请根据规则计算某位选手的得分。x行,每行包含5个正整数,分别表示每个评委打出的分数(1≤分数≤100),数字之间使用空格隔开。编写程序,计算x名选手的最终得分,将分数按照从小到大的顺序进行排序。分数:100 OI排行榜得分:18(0.1*分数+2*难度)时间限制:C/C++ 1000MS,其他语言 2000MS。一行,x个正整数,中间用空格分隔,按照从小到大的顺序输出。第一行,一个正整数x,表示x名选手(1≤x≤30);

2023-10-13 19:14:42 661

原创 【c++每天一题】 字符串压缩

给定一个字符串,将连续相同的字符进行压缩。例如,输入“aaabbbccdef”,其中字符a和字符b还有字符c都有连续相同的,相同的部分只留下一个字符,后面跟上相同字符的个数,例如上面例子压缩后变成“a3b3c2def”。分数:100 OI排行榜得分:12(0.1*分数+2*难度)时间限制:C/C++ 1000MS,其他语言 2000MS。内存限制:C/C++ 128MB,其他语言 256MB。现给你一个字符串,将其按照这个规则压缩后再输出。一行字符串,字符串长度小于256。

2023-09-09 10:20:33 444

原创 【备战csp-j】 csp常考题目详解(4)

2004本来就是十进制,所以不变,而16进制的32转换为十进制就是3*16的一次方+2*16的零次方也就是48+2等于50。解析:小数部分乘二取整,整数部分除二取余,所以整数部分=1100100,而小数部分则为0.625*2取整得1,0.25乘二取整得0,0.5乘二正好等于1,所以结束。所以反推可得反码为补码-1也就是10010111,符号位不变,所以接着反推原码也就是反码取反等于11101000,故选B。2. 算式(2047)10 - (3FF)16 + (2000)8 的结果是( )。

2023-09-08 22:30:28 324

原创 c++冒泡排序的动画演示+程序实现

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。冒泡排序(Bubble Sort)是一种计算机科学领域的较简单的。

2023-08-28 14:40:18 105

原创 【备战csp-j】csp常考题目详解(3)

3.萝卜,白菜,黄瓜,西红柿四种蔬菜品种中选出3种,分别种在不同土质的三块土地上,其中萝卜必须种植,不同的种植方法共有( )。4. 书架上有21本书,编号从1 到 21 从中选4本,其中每两本的编号都不相邻的选法一共有( )种。还缺少2种蔬菜,需要从剩余3种蔬菜里面选出2种,方法数是C(3,2);萝卜必须种植:可以先从3块地里选出一块种萝卜,方法数是A(3,1);最终答案:A(6,6)*2=6*5*4*3*2*1*2=1440。所以总种植方法是:A(3,1)*C(3,2)*A(2,2)=18。

2023-08-17 22:06:06 461

原创 【闲侃历史】 唐朝----安史之乱那些事(1)

任幽州节度,安禄山偷羊被抓住,张守珪拷问他,准备乱棍打死,他高声喊叫说:“大夫难道不想消灭两个蕃族啊?”张守珪见他长得白白胖胖,语言豪壮,就释放了他。《旧唐书》:二十年,张守珪为幽州节度,禄山盗羊事觉,守珪剥坐,欲棒杀之,大呼曰:“大夫不欲灭两蕃耶?说到安史之乱,可谓是唐朝最乱的一段时期,据说唐朝当时也就5000多万人,而经历了这一战,人口只剩1000多万人了。草根一枚--------------成为节度使------------造反,建立燕朝,打下长安------------晚年被儿子杀死。

2023-08-14 18:00:15 161 3

原创 【备战csp-j】 csp常考题型详解(2)

IP地址是IP协议提供的一种统一的地址格式。在目前使用的IPv4协议下,IP地址是一个32位二进制码。C.HTTP(Hypertext Transfer Protocol):超文本传输协议。E.TCP(Transfer Control Protocol):传输控制协议。D.FTP(File Transfer Protocol):快速传输协议。3.下列网络上常用的名字缩写对应的中文解释错误的是( )。4.不能在 Linux 上使用的网页浏览器是( )。解析:其他几种浏览器都可以在Linux系统上使用。

2023-08-01 11:08:03 236

原创 【备战csp-j】 csp常考题型详解(1)

缓冲存储器(Cache)是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹 配而采用的一项重要技术。C.提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机 EDVAC。4.美籍匈牙利数学家冯·诺依曼对计算机科学发展所做出的贡献是( )。D不是某个人提出来的,而是技术发展必然的结果。第一台具有存储程序功能的计算机 EDVAC就是他主导发明的。1. 微型计算机的问世是由于( ) 的出现。A.提出理想计算机的数学模型,成为计算机科学的理论基础。B.是世界上第一个编写计算机程序的人。

2023-07-31 17:14:25 651

原创 每天一个实用库函数——reverse

begin是指找到字符串的起始位置,end是指找到字符串的最终位置。以后如果有人还问你如何翻转字符串,你就可以自豪的告诉他:“用reverse就行了!reverse反转数组就是reverse(数组名,数组名+你想让他反转的数组长度)如果要让reverse反转字符串,我们需要两个特殊的函数:begin和end;reverse是c++主要用来反转数组和字符串的函数。reverse反转字符数组的规则和数组的一样。这就是reverse反转数组和反转字符串的方法,你们明白了吗?

2023-07-19 10:15:18 3619

原创 信息学奥赛1196:踩方格

请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。时间限制: 1000 ms 内存限制: 65536 KB。a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;有一个方格矩阵,矩阵边界在无穷远处。提交数: 18854 通过数: 12677。b、走过的格子立即塌陷无法再走第二次;允许在方格上行走的步数n(n≤20)。c、只能向北、东、西三个方向走;

2023-07-18 10:23:50 110

原创 信息学奥赛1194:移动路线

对于1行1列的方格矩阵,蚂蚁原地移动,移动路线数为1;对于1行2列(或2行1列)的方格矩阵,蚂蚁只需一次向右(或向上)移动,移动路线数也为1……X桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。路线1:(1,1) → (1,2) → (1,3) → (2,3)路线2:(1,1) → (1,2) → (2,2) → (2,3)路线3:(1,1) → (2,1) → (2,2) → (2,3)

2023-07-18 10:20:36 154

原创 c++递推详解

思路:我们先来解读一下题意,我们知道斐波那契数列是1,1,2,3,5,8,13……他的每一个数都等于前两个数之和,然后我们就可以看一下样例输入,样例输入是6,根据上面的数列,我们很容易看出febnaqi数列的第六位是8了。关于递推,有一些题型是让你自己找数字中的规律,进而找出递推关系式,而还有些题是告诉你了递推关系式,让你自己去地推。好了,知道了递推关系式,我们就可以把过程编出来了,首先我们要定义一个变量n和用于推演的a数组,然后输入n:。可是,重点来了,我们怎么知道数组的第几项是几呢。

2023-07-14 09:18:42 278

原创 c++算术运算符详解

注意:++也可以放在变量的前面,只不过放在前面是先++再执行这行程序,而后面++则表示先执行这行程序再++。a++和a=a+1是等价的,就是把a的值+1。而--是c++的递减函数。a--和a=a-1也是等价的,同样就是把a的值-1。因为第一个实现运行完了程序再将a++的。所以输出没有变,而第二个是先将a++再执行这行程序,所以输出会变。这几个运算符应该不用多讲,+就是数学里的+,-就是数学里的-,*就是数学里的×,/就是数学里的÷。算术运算符分为+,-,*,/,%,++,-- 7种。

2023-07-09 14:34:26 327 1

原创 c++头文件

这个头文件就是属于很多人也都知道的头文件,看到这个头文件,你们有没有发现什么?对了,就是这个头文件string基本都是由其他的头文件组成的,什么等等的头文件。引入头文件就相当于把这个头文件拥有了其他头文件的能力,这个能力指的就是其他头文件定义的函数,数据类型等。答案是肯定的,因为它里面的一些函数如static,extern,namespace等函数也需要引入头文件,因为里面定义函数的过程过于深奥,所以不在这里过多讲述。

2023-07-05 17:54:01 137 3

原创 c++详解递归

倒数第二行就是递归语句,他是在函数里调用了这个函数,也就是递归。首先看第一行,是定义一个函数,没有任何问题,第二行就用了一个*=,也没有任何问题。首先递归算法是在函数内进行的,没有函数就没有递归。首先递归需要一个递归语句,其中的参数可以是0个,也可以是多个。这要视递归的函数有几个参数而定。递归对于新手来说是一种很难的算法,所以我们要深刻的了解它。第三行的判断是干什么的呢?那么第三行也就是一个跳出语句,没有任何问题。下面是一个递归代码,让我带着大家详细了解一下递归。递归就是这样了,你们明白了吗?

2023-07-04 10:13:17 278 2

原创 信息学奥赛1397:简单算术表达式求值

整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。运算数 运算符 运算数。

2023-07-04 09:28:16 203

原创 c++switch语句用法

不比如就上面的而言,如果表达式=常量1,那我就执行语句1……如果表达式不等于常量1,常量2和常量3的话,就执行default后面的语句n;然后跳出(break。这里要注意哦:switch语句不会当出现符合条件时自动退出语句,所以需要一个break。不然default后面的也会输出出来的。这个程序就是如果输入为几就输出对应的英文单词,充分的运用了switch。看到格式就可以知道他是一个多分支语句,而且可以支持嵌套。switch是c++标准库函数,定义格式如下:?关于switch,你明白了吗。

2023-06-30 15:49:36 2425 1

原创 深度搜索算法——走迷宫

题目要求:输入一个数n。接着输入一个n行n列的迷宫。0代表可以走,1代表不能走,2代表唐僧的位置。如果悟空能碰到唐僧,输出yes,否则输出no。这道题的解题关键就是要抓清深搜的精髓——回溯,然后就十分好解了。

2023-06-30 08:49:42 167 8

原创 信息学奥赛1187:统计字符数

输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。时间限制: 1000 ms 内存限制: 65536 KB。提交数: 24466 通过数: 13874。输入包含一行,一个字符串,长度不超过1000。1187:统计字符数。

2023-06-23 08:14:39 214 1

原创 c++出现 [Error] ** was not declared in this scope类似的问题怎么办?

就拿memset函数举例吧:memset需导入库或库,如果你调用了memset函数却不导入上面的头文件,同样也会报错。1.定义**数据类型语句的前一行没有写分号,而且你在程序中调用了他。因为第4行后面没有写分号,而且后面用了d++。2.在程序里调用的c++函数没有引进数据流。如果出现这个错误,有种可能。

2023-06-23 08:06:08 6865

原创 c++常用输出函数详解

上面的a是一个int形变量,但如果想输出一个字符型的变量,字符串等该怎么办呢?那我们就要把%后面改成不同的字母,下面是我给大家整理的表格,可供参考。这些都是printf的高级用法,①表示输出a变量后换行。③表示输出第一个a之后输出=,再输出一个a。①我觉得就没有什么好说的了,就是你想保留几位小数就在setprecision后面括号里写几就行了,非常的nice。②是把a以三个字符的宽度输出了。这回你信了吧,当然别有挑刺的,硬往这里面塞变量 ,那是肯定运行不过去的。就是把a以三个字符的宽度输出,也不难。

2023-06-21 19:56:57 3633 6

原创 每天一个实用库函数——goto

顾名思义,goto的意思是去……地方,当然,他在c++中也用于让程序去到一个地方,那么这个地方是哪呢。确切地说,goto用于让程序跳出循环,到达指定地方。他主要用于调出多重循环,示例如下:。在c++中goto就像一个传送门,就可以把程序“穿越”到另一行。而且goto相比于break也是有很多优势的。当然goto有没有劣势呢。比如goto会破坏程序的结构,所以不到没有办法尽量不要用goto。goto后面写的东西与变量名的定义规则相同,然后想让程序到哪就在哪一行写。goto后面的东西:。

2023-06-17 08:29:33 124 2

原创 c++常用程序模板,欢迎拷贝!

3. 判断一个数是否为质数函数。

2023-06-15 20:58:19 69 2

原创 信息学奥赛1141:删除单词后缀

给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。时间限制: 1000 ms 内存限制: 65536 KB。输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。提交数: 31568 通过数: 21641。输出按照题目要求处理后的单词。1141:删除单词后缀。

2023-06-14 19:31:04 117

原创 信息学奥赛1409:判决素数个数

时间限制: 1000 ms 内存限制: 65536 KB。输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。输出一个整数,表示X,Y之间的素数个数(包括X和Y)。提交数: 31735 通过数: 19005。两个整数X和Y(1≤X,Y≤10^5)。1409:判决素数个数。

2023-06-12 18:57:49 230 1

原创 我的博客大汇总,欢迎阅读!

4.5. 6.7.以上就是我的一些博客了,最后,强烈推荐作者奋斗小温的:

2023-06-11 10:07:19 55 2

原创 信息学奥赛1155:回文三位数

如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,求出所有的既是回文数又是素数的三位数。时间限制: 1000 ms 内存限制: 65536 KB。提交数: 43238 通过数: 28254。所有的既是回文数又是素数的三位数。1155:回文三位数。

2023-06-07 19:24:28 302

原创 信息学奥赛入门题目详解,有c++,python等语言。

时间限制: 1000 ms 内存限制: 32768 KB。提交数: 282289 通过数: 169107。一行,两个用空格隔开的整数。

2023-06-02 21:24:00 165

原创 信息学奥赛1151:素数个数

时间限制: 1000 ms 内存限制: 65536 KB。编程求2∼n2∼n(nn为大于22的正整数)中有多少个素数。输入n(2≤n≤50000)n(2≤n≤50000)。提交数: 68637 通过数: 40259。

2023-06-02 19:55:21 348

空空如也

空空如也

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

TA关注的人

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