发布

我的C语言

专栏成员
61
文章
6469
阅读量
15
订阅数
Codeforces之旅(2)---[补]
Sharky Surfing 这题在补题目的时候觉得这个可能是一眼dp,但是读者都知道的,我这个灰名小弱鸡,即使能够想到dp,但是我在想实现的时候发现,这个dp好难实现,我该怎么去寻找一个状态转移方程才能够表示我的状态,这好像比较难得,我有点不会,所以秉持着想15分钟的思路,我看了别人提交的代码。 别人的题解几乎都是使用四个数组来存放信息,两个数组分别存放障碍物的起点信息和终点信息,一个数组存放power-up的坐标,还有一个存放提升能力的大小。为了能够尽可能少的次数实现能够跨过所有的地点,我们应该选取能够选取的最大的能力的提升。 所以一个priority_queue就是一个存放能力的好方法,在我们的能力坐标小于第一个的障碍物的坐标的时候,我们需要判断当前能力是否能够实现跳过障碍物,如果能的话,就继续向下走直到走到不能跳过的障碍物停止下来,同时存放能够的priority_queue要随着坐标的移动一个一个的存入能力的大小,这样的话能够在需要使用的时候能够选出最大的,同时满足条件的能力提升的大小。如果所有的能力提升都选完并且还跳不过去的话,那么就直接返回-1,不能够实现,如果能够实现的话,就返回加上能力的次数。
薛定谔方程难
2024-11-24
340
Codeforces之旅(2)
对于这场比赛来说,我还是没有上 青。其实说来惭愧,在比赛开始前我也刷了不少的题目,但是呢,比完结束之后才知道,对于1200分数以下的题目来说,通常都不怎么涉及数据结构和一些难度比较大的题目。但是,这些都是我现在才知道的,如果你也是和我一样是一个灰名的话,你一定要多注意思考简单的方法去实现问题的解决,同时1200以下分数的题目有时候还会多包涵一些简单的模拟,这也是我们小灰明名需要注意的。 这场比下来很遗憾吧,对于Div3的C题,我真的哭死
薛定谔方程难
2024-11-20
570
从零开始的Codeforces提升之路
对于我来说,看这个分数就知道,我是一个真正的小菜鸡,从现在开始,我将持续更新,我会持续更新,期待一年之后的蜕变,如果获得什么奖状,或者说拿到什么成就的话会及时更新。 如果说正在看文章的你也是一个小白的话,不如及时关注一下,如果有时间的话,我会在每一场比赛结束之后都大概的写一下总结,写一下比赛时候的进度。(其实对于现在的我来说的话,每一场比赛有些情况下我都打不完就结束了,因为实在不会)。如果你是大佬的话,也可以关注关注我,指导一下我(大佬求教)。 我会尽力做好,快速提升自己。
薛定谔方程难
2024-11-18
1560
【C++】常用数据结构纲要(简易版)
如果让我现在来看的话,数据结构是什么,我觉得就是数据存储的一种方式,在特定条件要求之下存储的数据能够在我们需要的条件下实现高效的优化。换简单的话说,这就是像是,你即使在你自己的书房中找自己的书本,都可能比你去图书馆问图书管理员找到一本特定的书的时间长,因为图书馆存储书的时候是会根据特定的方式去存储(换句话说这时候的数据就像是按照特定的一种数据结构存储,而你自己的却像是没有做过处理的数据)。 所以学习数据结构是为了方便对于不同数据然后解决不同问题时候的加快速度和效率的方式。
薛定谔方程难
2024-10-12
1060
【Linux】模拟实现一个shell
一段时间的没有更新是由于最近开学期间比较的忙,同时也是由于刚开学的几门课才学习的时候有点迷糊,需要在学校课堂上花的时间更多了,所以才没有更新的,求放过。
薛定谔方程难
2024-10-01
1230
【Linux】基础IO认识(2)
上一篇文章中已经介绍了打开还有关闭的系统调用,但是还有一些的调用没有讲到,现在就简单的讲解一下吧。
薛定谔方程难
2024-09-18
920
【Linux】基础IO认知
事实上,我们在C语言的学习中了解的文件并不是真正的文件。从语言角度来说,我们没有真正的理解文件的含义 。又由于所有的语言几乎都能够对文件就行操作,但是每一个语言都不相同,谁给的勇气让他这么做呢?那一定是操作系统啊,在操作系统方面上的相同,让文件操作有着多种的可能,所以我们想要真正的理解文件,我们就得从操作系统上来理解。 但是我们还是,首先回顾先回顾一下代码的层次。
薛定谔方程难
2024-08-09
1330
由浅入深的了解进程(6)---地址空间
其中当父子进程之间的g_val改变之后,为什么即使是不同的值了之后,两个进程中的g_val的地址还是一样的? 虽然不能够确认这是什么意思,但是这个绝对不是物理地址,如果是物理地址的话,一个地址修改过值了之后不可能还能表示另外一个值,所以这个应该是虚拟地址。
薛定谔方程难
2024-08-07
790
【Linux】进程控制
在Linux中创建进程的话通常也就两种方式,一个方法是创建可执行程序,然后通过我们的./的操作让进程创建。还有一种方法就是在程序代码过程中写fork函数,再父进程的状态下,创建子进程。 fork返回值返回两次,对于父子进程返回的值不相同,如果需要,我们可以通过if,else来分流,让父子进程在拥有相同代码的基础上实现不同的任务。子进程fork返回0,父进程返回值是子进程的PID。 进程:内核的相关管理数据结构(task_struct+mm_struct+页表)+代码和数据。其中的代码是共享,数据是写时拷贝的。 所以进程调用到fork的时候内核就需要这样做, 1、分配新的内存块和内核数据结构给子进程 2、将父进程的部分数据结构内容拷贝至子进程 3、添加子进程到系统进程列表中 4、fork返回,开始调度器调度 因此,由于代码不会相互影响,数据会在改变的时候发生写时拷贝并且父子进程都拥有属于自己的相关内核的数据结构。所以这样的进程拥有独立性的特点。 也是一个进程崩溃不影响另一个的原因。 所以为什么父进程返回的是子进程的PID,子进程的返回时0? 因为父进程得到子进程的PID的话,就能够尽可能方便管理,控制子进程,包括后续的杀掉进程,回收进程。 fork创建失败也是很常见的,失败的原因: 1、系统中有过多的进程 2、实际用户的进程数超过了限制 其中对于进程来说是两个部分,那么这两个部分是哪一个部分先创建的呢?先有内核的相关管理数据,然后才有的代码和数据。 这种状况在现实中也有,就比如说,你去找工作,找到工作之后收到offer之后,对于那个公司来说,在你人还没有到公司报到的时候,就已经算是创建好你的档案了,只有在你真正的抱到结束之后,才算是真正的员工,这里的报道,相当于就是你人去了,相当于上面的数据和代码本体,然后收到offer的时候,算是已经创建了PCB等一系列结构体。
薛定谔方程难
2024-08-07
710
【Linux】进程替换
为什么我们执行我们的程序,最后跑起来的确实ls的命令? 所以execl的作用是让我们(进程)用exec*函数,执行起来新的程序。 会替换掉原本的程序,执行我们新调用的程序。
薛定谔方程难
2024-08-07
810
由浅入深的了解进程(5)--环境变量
在上一篇文章中简单的介绍了环境变量,但是没有讲述的比较全面了,所以现在再写一篇来介绍环境变量。
薛定谔方程难
2024-08-04
650
由浅入深的了解进程(4)---优先级,命令行参数,环境变量
和生活中的概念其实是差不多的。优先级在进程中的定义是指定进程获得CPU资源的先后顺序。如果换一个视角的话,优先级的本质也就是在操作系统中的进程PCB结构体中的一个变量表示的是优先级的先后,用整形来表示,几个不同的进程相互比较整形的大小就能够实现优先级的概念。数字越小的优先级越高。 优先级 vs 权限。权限问题是决定能不能,但是你有优先级了,也就是说明你已经能够有权限了。 例子: 假如你带着饭卡去食堂排队,这说明什么,你已经拥有饭卡,拥有能够在食堂吃饭的权利,所以你才有等待排队的过程,如果连饭卡都没有的话,那么也就相当于直接没有权限。这个排队的过程其实也能够看作是优先级的过程。
薛定谔方程难
2024-08-04
810
由浅入深的了解进程(3)
所谓的进程状态也就是Linux系统中struct task_struct结构体中的各个属性/变量所表示的状态的综合。 在Linux操作系统中,进程的定义在kernel中的源代码是
薛定谔方程难
2024-08-02
850
由浅入深的了解进程(2)
上一篇文章中从冯诺依曼体系结构聊起,再到操作系统,如果忘记了之前的这两个知识,可以i回去看一看,现在我们将要重点开始进程了!
薛定谔方程难
2024-08-02
990
由浅入深的了解进程(1)
大多数常见的计算机,类似笔记本或者是台式电脑,包括不常见的计算机,类似服务器,大多遵循冯诺依曼体系。
薛定谔方程难
2024-07-31
840
Linux中的gdb调试
在Linux命令行中,我们还不知道怎么调试我们编写的代码。按照通常情况来说的话,Windows版本下我们编写代码有debug和release版本,那么Linux下也应该是有这两个版本的,那么我们该如何操作的呢? Linux中gcc/g++出来的二进制程序,默认是release模式。 所以我们需要在gcc/g++的过程中需要加上一些指令。
薛定谔方程难
2024-07-30
1500
快速介绍git(Linux)
故事介绍:你是一个大学生,你上课需要交一分实验报告,教你的老师比较负责,所以说,每次的实验报告他都会看的很仔细,非常的认真看你的报告,所以也比较难通过。正好在这样的基础之上,你有一个室友,你的室友血气方刚,刚刚上大学,很兴奋啊,所以有一次老师刚刚布置完实验报告的作业,他就马上写完去交,可是并不如意。老师说,虽然你这样这么快的写出来很好,但是还是需要修改修改的,然后室友就回去修改了。连着好几次的修改,可是到最后老师都还是有点不满意,这样的话,老师实在不行了,就和你的室友说,那还是第二次给我的报告的样子交给我吧,可是这下,你的室友无语了,这怎么找到第二次报告,我还记得第二次报告是什么样子的? 而你—张三,在看到你的室友这样子以后,知道了你去交的时候不能每次都修改的同时还没有保留原稿,以防万一老师说实在不行还要原来的时候,我们还找不到原稿了。 所以如果是我们自己交的话,每次都要保留一下原稿,这样的行为,在计算机上的话也就是版本控制。
薛定谔方程难
2024-07-29
760
Linux的Makefile进度条
那为什么我们需要定义变量呢?就像是在C语言中的宏一样,以后的这个基本就不会改变了,就只是会在定义的时候发生变化,这样能够简化操作。学着学着就能够感受到好处了!
薛定谔方程难
2024-07-29
640
Linux项目中自动化构建工具-make/Makfile
难道说每次C语言代码写好之后都需要去编写gcc命令,如果有上百个文件去构建的话,那不得麻烦死了。所以有没有简单的做法呢?有!答案就是make/Makefile。
薛定谔方程难
2024-07-27
1080
Linux下Centos7中的gcc/g++
可能对于没有配置过的centos来说,会无法编译成功。为什么呢?那是由于gcc的版本在默认的情况之下是取了一个适中的版本,不算太新,正好又不能编译for循环,所以导致这样不能进行编译。 如果想要编译的话,可以根据提示信息,进行改写一下gcc命令
薛定谔方程难
2024-07-27
930
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档