自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P1106 删数问题----注意别掉坑里了哦

键盘输入一个高精度的正整数 $N$(不超过 $250$ 位),去掉其中任意 $k$ 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 $N$ 和 $k$,寻找一种方案使得剩下的数字组成的新数最小。这里我运用的是while循环,循环的条件就是n(也就是要求删数的个数),同时,我们要在循环里面再套个循环。各位,当我们看到这题时,我觉的很多人会想只要把这些数字中最大的数依次删除,就可以得到最小数,但这其实是一种错误的思想,第三步,我们删完数后,还有一个很重要的步骤---### 样例输入 #1。

2024-02-05 17:13:30 358

原创 P1678 烦恼的高考志愿---你是也会感到烦恼呢?

根据 $n$ 位学生的估分情况,分别给每位学生推荐一所学校,要求学校的预计分数线和学生的估分相差最小(可高可低,毕竟是估分嘛),这个最小值为不满意度。对于 $100\%$ 的数据,$1\leq n,m\leq100000$,估分和录取线 $\leq 1000000$ 且均为非负整数。第二行共有 $m$ 个数,表示 $m$ 个学校的预计录取分数。第三行有 $n$ 个数,表示 $n$ 个学生的估分成绩。对于 $30\%$ 的数据,$1\leq n,m\leq1000$,估分和录取线 $\leq10000$;

2024-02-03 16:06:38 326

原创 洛谷P1104 生日----这个生日,你喜欢吗?

第一步,我们要先录入数据,我们会发现如果单纯的用多个二维数组或者一位数组记录数据,会显得很麻烦,所以我们用另一种数据结构---数据保证,$1<n<100$,$1\leq |s|<20$。,第一感觉肯定是排序,说简单点,这道题就是按年龄从大到小进行排序,进而根据排序结果来进行名字的先后输出。第 $2$ 行至第 $n+1$ 行分别是每人的姓名 $s$、出生年 $y$、月 $m$、日 $d$。第二步,我们要进行排序,这一步也是最重要的,这里我们可以自己使用自己喜欢的排序方式,我选择的是。输出共有 $n$ 行,

2024-01-30 16:51:05 407

原创 洛谷P3392 涂国旗-----暴力美学的演绎

现有一个棋盘状的布,分成了 $N$ 行 $M$ 列的格子,每个格子是白色蓝色红色之一,小 a 希望把这个布改成该国国旗,方法是在一些格子上涂颜料,盖住之前的颜色。当然是用整型数组记录,我们用三个整型数组记录更方便(毕竟只有三种颜色,也可以用二维数组);某国法律规定,只要一个由 $N \times M$ 个小方块组成的旗帜符合如下规则,就是合法的国旗。接下来 $N$ 行是一个矩阵,矩阵的每一个小方块是`W`(白),`B`(蓝),`R`(红)中的一个。对于 $100\%$ 的数据,$N,M \leq 50$。

2024-01-23 18:58:35 389

原创 P2437 蜜蜂路线---一只小蜜蜂啊,飞入花丛中啊......

一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 $m$ 开始爬到蜂房 $n$,$m<n$,有多少种爬行路线?当我也是按照这种思维思考时,便遇到了一个问题就是如何计算数组的实际长度,经过我七七四十九分钟的思考,终于想到怎么计算了,不知道各位看到这题时,各位是这样思考的嘛,应该还有另外的思想,动动脑筋,加油·!的结合应用,如果这两个知识点不会的小伙伴,那可以看一下本蒟蒻前面的相关文章。对于100%的数据,$1 \le M,N\le 1000$

2024-01-20 21:38:03 384

原创 P1093 [NOIP2007 普及组] 奖学金---你想要吗?

期末,每个学生都有 $3$ 门课的成绩:语文、数学、英语。第 $2$ 到 $n+1$ 行,每行有 $3$ 个用空格隔开的数字,每个数字都在 $0$ 到 $100$ 之间。第 $j$ 行的 $3$ 个数字依次表示学号为 $j-1$ 的学生的语文、数学、英语的成绩。首先这道题的思路很清晰---排序(先按照总分大小排,其中分数相同的按语文成绩的多少进行排序),我们第一时间想到的是排序的各种方法如冒泡,插入,快速,堆,桶等,这里我选择的是冒泡排序,这个相对于简单一些,如果出现超时在换另一种排序方法。

2024-01-19 18:52:53 318

原创 P9748 [CSP-J 2023] 小苹果-----又爱又恨的小苹果!!!

每天在拿的时候,小苞都是从左侧第 $1$ 个苹果开始、每隔 $2$ 个苹果拿走 $1$ 个苹果。输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为 $n$ 的苹果是在第几天。小 Y 的桌子上放着 $n$ 个苹果从左到右排成一列,编号为从 $1$ 到 $n$。小苞想知道,多少天能拿完所有的苹果,而编号为 $n$ 的苹果是在第几天被拿走的?小苞第一天拿走了编号为 $1$、$4$、$7$ 的苹果。小苞第二天拿走了编号为 $2$、$6$ 的苹果。

2023-12-31 20:18:09 391

原创 P9913 「RiOI-03」water problem-----说难不难,说简单不简单

接着我们该进行第三步,用完3的平方,我们接着用四的平方,就是这样的,那么我们是否也可以进行合成呢?当然可以,把其中一个九个相接的小正方形合成一个大正方形。这是我们发现三个式子都有关联,且都相差1,并且最重要的是其都是3*n,那么就可以表示从6以后的数字个数的小正方形都可以由一个大正形得到,而6之前的只有1和2可以由大正方形得到,那么此题就解出了最重要的点只有三个数字不行----给定一个正整数 $n$,问一个正方形能否被分割为 $n$ 个小正方形(**不要求大小相等**),输出 `Yes` 或 `No`。

2023-12-29 11:36:20 357

原创 P1308 [NOIP2011 普及组] 统计单词数----有意思

一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从 $0$ 开始);但是,我们要明白,它给的字母有可能存在大写和小写的情况,但是strcmp无法判断大小写,所以我们需要转化,这时,我们在用一对函数tolower(大写转小写)和toupper(将小写转大写),任用一个·就可以了,起头文件是。第 $2$ 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

2023-12-28 11:08:44 461

原创 洛谷独木桥---算法思维和数学思想

其实可以回想一下数学知识,这些人和桥可不可以比作数学上的点和数轴,而下桥的地方就是数轴的两端点,所以点到两端点的距离不就是时间的大小吗?首先由题意知如果两个人相对而行碰面就会转身,那么我们假如甲和乙一个向左一个向右,正好碰面,那么此时甲乙转身,变成甲向右,乙向左,或许你看到这有一点思路就是可以算最短时间,毕竟只要不出现相撞并且根据中间点分开向左,向右就可以了;但这样可以大大加快我们写出题的速度。虽然看着混乱,但是如果仔细看的话,很容易理解,但这都是慢慢测试不全的,主要是那是思维不是很清楚,就造成这样了。

2023-12-16 17:53:32 34

原创 归并排序--分冶和递归

原理就是先将数组分成一个又一个小块,然后一个又一个小块进行比较排序,归并成一个又一个大块,大块在归并回原来的数组。其思想则是分冶和递归。归并排序的时间复杂度是o(nlogn),相比于冒泡与插入的时间复杂度是o(n^2),使用此文章我们降解归并排序,直接看图。

2023-12-14 10:23:42 29

原创 贪心算法(简单题)----洛谷2240

藏宝洞里面有 $N(N <=100)$ 堆金币,第 i 堆金币的总重量和总价值分别是 m_i,v_i(1<= m_i,v_i<=100)$。阿里巴巴有一个承重量为 T(T <= 1000)的背包,但并不一定有办法将全部的金币都装进去。所有金币都可以随意分割,分割完的金币重量价值比(也就是单位价格)不变。看完题目我们首先就想到的是贪心算法,用贪心算法解出此题是十分简单的,此问题就类似于支付纸币数量最少问题一样,而这个则是价值比就相当于纸币的面额,所以此问题十分简单。### 样例输入 #1。

2023-12-12 13:24:02 36

原创 通讯录的实现--c++

废话不多说,我们直接上代码,毕竟很简单,也不是很难!感觉与c相比差不多,其中"cls"是清屏。

2023-12-10 15:57:29 17

原创 P1015 [NOIP1999 普及组] 回文数

首先,当我们看到题目后,看到数字正倒序是相同的这一观点,我们就可以使用数组来进行解决,因为数组的正倒序更好的实现,并且这里我运用了高精度加法的思想来进行正倒数的加法,所以很容易实现代码,但我们要注意一点,就是16进制时数字的·表示状况。写一个程序,给定一个 N(2 <=N <= 10 或 N=16)进制数 M(100 位之内),求最少经过几步可以得到回文数。如果能在 30 步以内得到回文数,输出格式形如 `STEP=ans`,其中 $\text{ans}$ 为最少得到回文数的步数。两行,分别是 N,M。

2023-12-02 13:52:11 32

原创 洛谷P1003 [NOIP2011 提高组] 铺地毯

只有我们把题目读懂之后才能更好的进行下一步,首先我们要明确各个字母代表什么意思,然后在带入示例来进行进一步的理解,比如从第二行开始的那四个数字代表什么(这很重要),比如刚开始我就是把这四个数字以为是左下角和右上角的坐标来进行解答的,然后已测试才发现有些测试点通过不了,这就会浪费时间。好了,我们开始讲述这题的重点就是数学思维,如何判断这个点是否在这个·矩形内呢?很简单,我们可以通过左下角坐标的加法得到右上角坐标,只要这个点满足a<=x<=a+g以及b<=y<=b+k就可以了。

2023-11-21 19:37:57 119

原创 洛谷P1011 [NOIP1998 提高组] 车站

火车从始发站(称为第 1 站)开出,在始发站上车的人数为 a,然后到达第 2$站,在第 2站有人上、下车,但上、下车的人数相同,因此在第 2 站开出时(即在到达第 3站之前)车上的人数保持为 a 人。附吐槽:这个题有个测试点是1,6,7,4输出的答案是4,这样的话b=3,但是第二站的人数是1,所以有两个神经病,在第二站上个车,又在第二站下车,无语啊!这是我们根据条件列出的前六个站上,下,走时的车上人数,而根据题目我们知道最后一站的下车人数,思考一下,最后一站的下车人数是不是就是前一站走的人数。

2023-11-17 13:42:51 128

原创 顺序表的实现(直接上代码版)

【代码】顺序表的实现(直接上代码版)

2023-11-12 16:40:42 29

原创 洛谷·--数的计算

我们可以以先一一列举,假设我们输入的是n,而其对应的输出结果为m,则当n=1时,m=1;n=5时,m=6......我们可以看出规律了当n%2=1时;同时n%2=0时,其m的值等于1到n/2的m的所有和的加数的值,为了方便,我们运用数组来进行这题的求解。两个合法数列 $a, b$ 不同当且仅当两数列长度不同或存在一个正整数 $i \leq |a|$,使得 $a_i \neq b_i$。2. 在一个合法的数列的末尾加入一个正整数,但是这个正整数不能超过该数列最后一项的一半,可以得到一个新的合法数列。

2023-11-09 16:36:41 44

原创 库函数--部分分享

在上一篇CSDN中我们已经介绍了·一部分的库函数,现在我们接着介绍一部分库函数,希望大家能够记住,并且熟练运用。3,memcpy:内存拷贝,什么类型都可以拷贝(可以与strcpy一同记忆,两者都是拷贝,但memcpy的范围更大一些)(两个函数的作用相反,可以一同记忆)5,memcmp:比较内存(与strcmp的用法相似,但范围更大)4,memove:用于内存重叠的拷贝(与其他两个一起记忆)6,memset:内存设置函数,改变的单位是字节。最后就这些,希望各位能够记住并且,能够运用。

2023-11-07 19:05:28 19

原创 字符串函数的简略分析

众所周知,如果我们要写一个程序的话,尽量使用给定的库函数,这样可以提高我们写代码的效率,同时也可以减少我们的代码量。值,如果相同则返回‘0’,如果大于则返回一个大于0的数(一般为1),小于则返回一个小于1的值(一般为-1)。1,strcpy:用于字符串的拷贝,记住只能拷贝字符串,整型,浮点型,结构体都不能进行拷贝。6,strerror:返回错误码,所对应的错误信息(可以帮助我们更好发现错误的地方)。我希望我介绍给大家的这些字符串,大家能记住它们的名称的用法。2,strcmp:用于字符串的比较,比较字符的。

2023-11-04 20:32:10 24

原创 函数strstr的自我实现

首先我们要明确函数strstr的作用,用于查看函数原型 strstr函数的函数原型如下: char *strstr(const char *str1, const char *str2);其中,str1为要查找的字符串,str2为要查找的子字符串。当我门需要时,我们完全可以去调用它,十分简便,但若要求·你写出一个可以实现其用法的代码你会怎么写?这段代码大家可以自己领悟一下,会得到某些东西的。现在我就给大家实现以下这段代码。

2023-11-02 09:27:59 32

原创 杨氏矩阵--简述

当然存在,毕竟这是一种特殊的矩阵,那么我们就从它的性质入手,我们是否可以通过比较每一行的最后一个数,进而达到要找的数以这一行的范围进行比较呢?可能会有人说直接暴力枚举就好了,遍寻一遍所有的元素,就可以了;显然这种方法是最容易想到的,也是用代码最容易实现的(在这我就不展示了)而如果我问你输入一个数字,检验矩阵中是否存在。当然可以啦,用这种方法可以使我们代码的算法的时间复杂度降低。杨氏矩阵,顾名思义是一个矩阵,它的特殊之处很好理解。杨氏矩阵从左到右依次增大,从上到下依次增大。首先我想问大家什么是杨氏矩阵?

2023-10-30 19:42:11 25

原创 指针例题讲解和sizeof类型简析

首先,我们明确这是(char类型)字符类型的指针,*a来指向数组中的各个字符串,而pa则是指向*a的指针(也就是二级指针指向一级指针),然后我们看到pa++,故就相当于此时我们可以类比于数组,原本pa是指向*a[0],但在+1之后就指向了*a[1],也就是此时的字符串“at”.所以最后打印出来的是at.4,这里的a表示数组的首元素的值,a+1就是第二个元素的地址,而地址的大小是4/8个字节。2,这里的a表示数组的首元素的地址,a+0还是首元素的地址,而地址的大小是4/8个字节。5,第二个元素的大小。

2023-10-26 19:13:24 29

原创 洛谷--数阶梯(完全通过版)

所以想要解决这道题要先学会高精度算法,以及递归算法,但本题用一般的递归反而会超时,所以我们可以用交换来代替递归,这样可以节约时间,我现在给大家写出我未完全通过的代码,希望可以给你们提供一个思路。我们很容易看到本题的算法标签是。

2023-10-25 19:17:21 37

原创 计算器的实现

当我们看到计算器话题时,相信我们可能会觉得这有什么,一串非常简单的代码就可以实现了,”,通过回调函数,我们更加方便的进行计算器的实现,同时也便于功能的增加。但我们在此实现计算器,运用到了一个非常重要的知识点“现在我们展示代码,运用到了数组指针,自行可以理解一下。

2023-10-20 18:41:44 35

原创 快速排序(简述)

(c/c++自带的函数),而这里边包含指针,它的头文件是stdlib.h。我们先看看它的原型void qsort(void* base,size_t num,size_t size,int (*cmpare)(const void*a,const void*b));其中的函数类型是void,可以更加方便接受传入的类型(无论是int,还是char等等),其返回值决定了是升序还是降序,假设返回值为x.则返回大于,x=0;快速排序不仅可以排整型,还可以是浮点型,结构体等,应用十分广泛,并且如果你掌握娴熟,

2023-10-19 11:54:06 40

原创 高精度算法(加法)----C语言

首先我要先声明我用的编译器是VS2022,由于我在csdn上没搜到一篇关于c语言高精度算法的文章,所以我决定写一篇c语言的高精度加法文章讲解,希望刚开始以c语言学习编程的同学能从中学会高精度算法--加法。当我们处理两个整数数(a,b)相加时,会存在一定的限制,因为无论是int还是longlong类型,都有一定的范围,当我们相加的两个数超出这个范围时,就需要我们的高精度算法了。如果其中倒序不理解原因的话,你可以正序试试能不能出来,也可以那草稿纸写一下,更方便理解。

2023-10-17 13:34:55 54

原创 整形提升--例题解答

由于a和b是char类型,故先按其八个比特位相加得10000010;然后将其补齐,由于其首位是1;因此我们前面全补1(语法这样规定);故我们得到它的补码;其反码1111111111111111111111111110000001;首先我们把它们补全为a:000000000000000000000000000011;首先我们明确一点char类型在内存中只占一个字节,也就是八个比特位,故a的二进制是00000011;b的二进制则是01111111,注:原码和反码的第一位数字不变,作为符号位。

2023-10-10 12:25:10 37 1

原创 整型存储(原码,反码,补码)

而一个整型(int)在空间占据四个字节相当于32个比特位,于是我们若要写出一个数完整的原码,要写够32位才可以,由此可以得到5的原码就是00000000000000000000000000000101;首先我们要明白一个知识点32个比特位中,其中第一个数最重要,因为它决定乐这个数的正负,如果是正数开头应是0,如果是负数开头应是1;当要求一个负数的原码,反码,补码时,记住一个规则,整型(整型)在计算机中的存储,首先我们明确一个关键知识点(原码,反码和补码),众所周知计算机只能识别1和0;

2023-10-10 12:21:50 36 1

原创 统计二进制中1的个数

首先我们先给定一个数n=13,那么它的二进制数就是1011;故其二进制数中1的个数3,我们先编写一个代码来进行实现。这个代码只用了按位与“&”,通过其性质来进行运算,可以自己运算一下,更加便于理解。”操作,这是其中一种方法,现在我们运用一种更简洁,速度更快的代码。来使一个数的二进制位进行移动,在与1进行“”操作符,其中主要是通过。

2023-10-02 15:27:15 29 1

原创 关机恶搞代码

这里运用到了“system”函数,此函数是用于执行系统操作的。并且如果用的不是vs2020,则把scanf_s改成scanf,并在开头加一句话,自己可以搜索一下。然后发给自己的好友,试一下吧。

2023-09-27 12:56:44 65 1

原创 在不引入第三个变量的情况下,实现两个数的交换

首先我们先假设a=3,b=5.如果要实现a=5,b=3.那么我们可能第一个想到引用一个变量进行交换,但若我们不引入第三个变量也照样可以实现。这个方法易于理解,但有些限制,就是由于是int类型,故a,b要小于某个数才行,否则会导致整型溢出。进而导致代码运行出现bug.,或许会有人对这个运算符有疑问,其实很简单理解,将两个数从十进制化为二进制,然后根据规则(,通过两个数之间的加减,和转换赋值来进行交换的实现。自己可以进行理解,拿出稿纸动笔算一下更好理解。现在我们介绍第二种方法运用到了(

2023-09-26 22:15:07 197 1

原创 冒泡排序分析

其中的9就相当于质量大的气泡,它通过与其他几个数比较后,这个气泡就沉下去到该序列的末尾。,然后我们想要让它成递增形式,此时我们可以使用冒泡排序方法。,就是像气泡一样质量大的气泡沉下去,而质量较轻的气泡则浮上去,这就是。首先我们先列出一个数组。

2023-09-22 21:36:20 50 1

原创 数组的排列--《算法导论》习题解法

首先我们根据题目要求要对数组A={3141,59,26,41,58}进行从小到大的排序;我们可以借鉴书上的伪代码进行编写,而且从大到写的排序与相似。

2023-09-19 20:26:31 36

原创 青蛙跳台阶问题----递归思想

我们可以发现3=2+1;因此我们可以发现规律,现在就可以编写代码来解决此问题。,但此代码的效率更高,可以输入一个大数比较法1与法2的运行速度。,而青蛙可以一次上一个楼梯或两个楼梯,那么请问青蛙有x种方法到达楼顶?首先我们假设一个情景一个青蛙要上楼,而楼梯数我们设为。首先我们现在草稿纸上列出当n=1-5时的种类数;此代码运用了递归思想,其实此问题与。为当n=1是种类数为1;为当n=2是种类数为2;为当n=3是种类数为3;为当n=4是种类数为5;为当n=5是种类数为8;

2023-09-19 11:39:52 47

原创 递归思想--打印1456

【代码】递归思想--打印1456。

2023-09-18 19:28:41 29

原创 爱心代码——c++(借鉴b站up主)

【代码】爱心代码——c++(借鉴b站up主)

2023-09-13 12:52:59 8082 14

原创 三次密码的输入 同时运用while语句还有for语句

是一个密码检测程序。

2023-09-07 13:32:23 809 1

原创 猜数字游戏

选择语句,该编码可多次进行理解,对自身更有用。

2023-09-01 11:21:38 54 1

原创 乘法口诀表的输出

是为了使其对齐进而显得更加规整美观,而“运用for循环来构建,其中最后的。

2023-08-31 14:14:36 38

空空如也

空空如也

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

TA关注的人

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