- 博客(32)
- 收藏
- 关注
原创 Linux和Unix的区别及为什么鸿蒙系统不用Unix的原因
鸿蒙系统是华为自主研发的一款全场景分布式操作系统,其设计理念和架构与传统的Unix系统有显著不同。鸿蒙系统采用微内核架构,而不是基于Unix的宏内核架构,这使得鸿蒙系统在安全性、资源占用和运行效率等方面具有独特的优势。以下将详细探讨鸿蒙系统不用Unix的原因。鸿蒙系统采用微内核架构,这是其核心设计理念之一。微内核架构与传统的宏内核架构相比,具有更高的安全性和更好的资源管理能力。微内核将系统功能分解为多个小模块,每个模块独立运行,减少了内核的复杂性和潜在的安全漏洞。
2024-08-31 17:09:47
524
原创 map详解
map<数据类型1,数据类型2> 名字;int,char,string,short,double,float,long long,struct//自定义你可以将map理解为数组它的数据类型1就好比数组的下标,他的数据类型2就相当于数组每个位置的值。^ ^| |关键字(key) 关键字的值(value)比如:mp[1]=1;//跟数组一样或:或个人跟推荐第一种。map的查找://如果没到会返回mp.end(),为什么不是mp.end()+1呢?因为map是左闭右开的。
2024-07-31 17:36:20
442
原创 线段树详解
线段树的查询操作是通过递归地查找查询区间所在的位置来实现的。因为每个节点都需要递归访问左子树和右子树,所以总的递归次数是O(logn),而每次递归的时间复杂度是O(1),所以总的时间复杂度是O(logn)。如需支持动态大小的线段树,请在构建线段树时动态分配内存,并在单点修改和区间查询时更新线段树的大小。线段树的构建是通过递归的方式实现的。函数用于构建线段树,它会递归地将数组的区间划分为更小的区间,直到区间只包含一个元素。函数用于单点修改,它会在给定的索引位置修改节点的值,并递归地更新受影响的节点的和。
2024-07-31 17:05:30
294
原创 树状数组详解
树状数组的实现通过维护一个数组C,其中每个元素C[i]保存的是原数组中对应位置i及其前面的2^k个元素的和,其中k为i的二进制表示中最低位的1的位置。例如,对于一个元素位置i=6,其二进制表示为110,则k=1,因此C[6]保存的是原数组中位置6和位置5的元素的和。在每个位置j上,将C[j]的值加上i的值。- 然后将i的二进制表示中最低位的1去掉,即将i的值减去i的二进制表示中最低位的1。- 然后将j的二进制表示中最低位的1去掉,即将j的值减去j的二进制表示中最低位的1。最终累加结果即为前缀和的值。
2024-07-31 14:55:51
300
原创 动态规划与贪心
C++的贪心算法是一种基于贪心策略的算法,其中贪心策略是根据当前状态做出局部最优的选择,以期望最终能够得到全局最优解。贪心算法通常用于寻找最优解问题,尤其是当问题具有最优子结构性质时,即问题的最优解可以通过其子问题的最优解来推导得出。在这种情况下,贪心策略通常表现出良好的性能,并且可以很容易地被实现。在C++中,可以使用一些基本数据结构和算法来实现贪心算法。例如,可以使用STL中的vector、set、map等容器,以及sort、lower_bound等算法来实现贪心算法。
2023-09-12 11:35:40
371
7
原创 C++猜谜灯小游戏
端午节,又称端阳节、龙舟节、重午节、重五节、天中节等,日期在每年农历五月初五,是集拜神祭祖、祈福辟邪、欢庆娱乐和饮食为一体的民俗大节。端午节源于自然天象崇拜,由上古时代祭龙演变而来。仲夏端午,苍龙七宿飞升于正南中央,处在全年最“中正”之位,正如《易经·乾卦》第五爻:“飞龙在天端午是“飞龙在天”吉祥日,龙及龙舟文化始终贯穿在端午节的传承历史中。端午节是流行于中国以及汉字文化圈诸国的传统文化节日, 传说战国时期的楚国诗人屈原在五月初五跳汨罗江自尽,后人亦将端午节作为纪念屈原的节日;也有纪念伍子胥曹娥及介子推。
2023-06-24 21:07:07
224
1
原创 时间复杂度与时间限制
很好的工具(它们可以让我们避开很多坑,比如你以为这道题暴力做能拿满分,但算了时间复杂度后发现超出了时间限制. . . . . .你就不会再傻傻的用了很多时间编了一个暴力程序后信心满满的一提交发现超时了!一般会在题目中给出,常见的限制有 1/2/5/20 秒(s),有的时候也会用毫秒(ms)的形式给出。我们一般用时间复杂度这个概念来描述一个算法的耗时,这个概念详细定义比较复杂,可以简单理解为。时间复杂度就是基础运算的规模,更准确的定义可以参照下面的扩展阅读部分。比如上述的算法 1 与算法 2,我们通常会用。
2023-03-21 21:40:10
331
原创 P1028 [NOIP2001 普及组] 数的计算题解
P1028 [NOIP2001 普及组] 数的计算题解。来看一下样例:66 16 26 36 2 16 3 1定义:f[i]代表以i为开头的合法的数列。f[1]=1;1f[2]=2;22 1f[3]=2;33 1f[4]=4;44 14 24 2 1规律:f[i]=(f[1]+f[2]+...+f[i/2])+1(加一是指只有i这一个数字的合法的数列)。
2023-03-21 21:27:17
92
原创 前缀和(1)——详解一维前缀和(建议收藏!!)
我们设前缀和数组是sum数组,输入的数组是a,数组的长度是n。那么代表的就是a数组的前i项之和。i
2023-02-18 15:23:35
329
1
原创 洛谷P1080 [NOIP2012 提高组] 国王游戏(贪心、高精度经典练习题)
排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。位大臣来玩一个有奖游戏。按 1、2、3 这样排列队伍,获得奖赏最多的大臣所获得金币数为 2;按3、2、1 这样排列队伍,获得奖赏最多的大臣所获得金币数为 9。一个整数,表示重新排列后的队伍中获奖赏最多的大臣所获得的金币数。
2023-01-27 16:41:49
189
原创 详解二分算法(一学就懂,一写就会)
小明:"小张,我问你一个问题:在1,3,5,6,7,9这些数中5在那个位置?小张:"这还不简单,5在第三个位置!我是按顺序来找的:1,3,5。小明:"那我告诉你1~100这些数,让你找其中100这个数,你也从1~100来一个一个数吗?小张:"那我会从100~1来数。小明:"那如果你是一个机器人,我再问你这个问题,问:55在哪个位置?可是你只能从1~100或100~1来数数,可是这样数太慢啦!小张:"那可以怎们来数呢?小明:"这就要用到二分法的方法来解决啦!二分法,是指将一个有序。
2023-01-24 16:35:32
7015
2
原创 洛谷P2677 [USACO07DEC]Bookshelf 2 B 题解
洛谷P2677 [USACO07DEC]Bookshelf 2 B 题解
2023-01-20 21:37:04
162
原创 【原创】如何判断三条边能否构造出一个三角形
众所周知,三角形是由不在同一直线上的三条线段首尾顺次连接所组成的封闭图形。常见的三角形按边分有普通三角形(三条边都不相等),等腰三角(腰与底不等的等腰三角形、腰与底相等的等腰三角形即等边三角形);按角分有直角三角形、锐角三角形、钝角三角形等,其中锐角三角形和钝角三角形统称斜三角形。
2023-01-20 20:54:05
671
原创 【原创】一文搞懂原码,反码,补码的概念
本文就来科普一下二进制的原码,反码,补码的概念吧!然后,将N的绝对值搞成二进制数,同时输出N的原码(要特判一下二进制数的位数)。那我们怎么样用代码输出一个数N的原码,反码和补码呢。众所周知,我们经常用的电脑(计算机)使用的是。(0是负,1是正),剩下的七位就是这个数的。二进制反码的概念:正数的反码就是其原码。二进制补码的概念:正数的补码就是其原码。,再将N的补码+1输出(要注意一下。除符号位取反(1变0,0变1)。负数(如果是负数,就标记一下)。二、原码,反码,补码的概念。,负数的反码是其原码。
2023-01-19 17:54:22
367
原创 RMQ算法以及ST算法
一.RMQ的定义RMQ的定义:RMQ是询问某个区间内的最值,主要以ST表的方式实现。二.ST表ST表(Sparse Table,稀疏表)是一种数据结构,用来解决区间内的一些问题(比如可以求区间最小值区间最大值区间GCD),ST表采用的倍增的思想,我们在使用ST表的时候,可以做到O(nlogn)的时间建表,做到用O(1)的时间去查询。优点:ST表运行效率高。树状图支持求改操作。缺点:ST表无法进行修改。树状图运行效率低。三.模板题思路这一题是需要用到。
2023-01-15 16:48:44
362
原创 完全平方数问题
用0至9这10个数字组成一位数、两位数、三位数、四位数各一个,使它们都是非零的完全平方数.例如1,36,784,9025就是满足条件的一种分法。完全平方数,怎么造呢?的完全平方数”,所以我们枚举时就只要枚举1~3就行了(0*0=0)。四位数的范围是1000~9999,只要枚举10~三位数的范围是100~999,只要枚举10~一位数的范围是0~9,注意题目说“它们都是。两位数的范围是10~99,只要枚举4~枚举完之后,我们依次将这。,如果是,就cnt++。step 1:一位数。step 3:三位数。
2023-01-13 20:11:25
775
原创 钱币组合加强版本+(两种方法)
小明手上有 N!!!张纸币(他的钱很奇怪,可以是任意的正整数), 现在他想知道 用这N种纸币可以组合出多少种不同的总额出来。Format。
2023-01-13 13:49:12
161
原创 树的入门(满满的干货,建议收藏)
树一种由n个节点组成的具有一定层次关系的有限数据集合。每个节点有0个或者n个子节点有一个根节点没有前驱只有后继),除根节点外每一个节点都有一个前驱0个或多个后继。树的叶子结点叶子结点是指只有父结点,没有子结点。叶子结点就像自然界中树上的叶子都长不出来新的树枝一样,故而得名。树中每个节点的度每个节点的度是指该结点的子结点个数。树的度树中结点的最大的度。分支结点度不为0的结点。树的深度即从根节点到叶子节点的行数(根结点深度是0)。每个结点的度。
2023-01-09 20:58:36
175
2
原创 #E. 加加加树的边权
我们仔细观察一下,发现这道题我们可以统计每个点的度,最后只要判断每个点度是不是偶数就行了。现在你可以进行M次操作,每次将一条树上路径的所有边的边权加1。现在给你操作序列,问是否存在一棵树,使得执行完这些操作后。如果能找出满足条件的树,输出YES,否则为NO。一棵树N个点,最开始时边权均为0。当树长成这样,可满足条件。接下来M行,描述操作。
2023-01-05 22:03:41
155
原创 #D. 树的路径覆盖之覆盖边1
给你一棵树,问你,对于树上的所有边,你至少用多少条线段覆盖住它们。(例如上图中5的子结点个数有3个,3/2=1,需要1条线段来覆盖。(6和4是一条,8已经被上面的以结点3开头的线段覆盖过了)这些线段不能围成一个环,可以在点上相交,但不能有重合边。子节点个数/2条线段来覆盖它与它的子结点们的这些边。拥有子结点个数大于等于2的结点。接下来N-1行,描述这个树。我们通过观察发现,每一个......
2023-01-05 21:33:06
161
原创 树的练习题之#D. Journey之二
接下来K个数字,代表你要走过的点的编号.当然你可以自己选择出发点及行进的路线。我们首先的思路是暴力枚举K个数字,可是这样的话只有48分!最后一行给出K个数字,代表点的编号。我们现在有一个大胆的猜测:我们是不是要从深度最深且是必须要走过的那个点开始遍历呢?,使得便利到该节点时又返回到根结点(因为该结点。接下来N-1行描述有关边的开始点,结束点.,不能再往下便利了,如果还有结点,那也不是。)的距离为0(因为该结点就是根节点)。我们先观察一下:这一组样例的起始点是。深度最深且是必须要走过的点。
2023-01-04 23:06:23
82
原创 扫雪系列I与扫雪系列II题解
这是一道树的题目。我们先来分析一下样例:总共5个结点,1是根节点。结点1与结点2建立了一条长度为1的边。结点2与结点3建立了一条长度为1的边。结点3与结点5建立了一条长度为1的边。结点3与结点4建立了一条长度为1的边。5是怎么得来的呢?我们用一个路线来表示:1->2,2->3,3->4,4->3,3->5,总共用的燃料数量是:1+1+1+1+1=5。但用这样的方法去写程序的话很难写,那还有什么方法吗?当然有,我们先把所有边的值都加起来,记作sum。
2023-01-03 22:13:29
169
原创 #Z1516. 质数之家
那么根据哥德巴赫猜想,证明只需要2个集合就可以(因为任何一个大于2的偶数都能表示为两个质数的和,而这两个质数一定能被分解为一段连续正整数的和)。,那么证明那个质数只需要一个集合,2也只要一个集合,一共2个集合,输出2。如果1加到n不是质数,但是是一个奇数且减去2是一个质数(比如33)的话。如果1加到n不是质数,但是是一个奇数且减去3是一个偶数(比如35)的话。,那么证明那个偶数需要两个集合,3也要一个集合,一共3个集合,输出3。,那么证明只需要这一个集合就行了,输出1。如果n是1,输出-1。
2022-12-29 21:18:27
96
原创 #Z1243. 完美数(类筛选法)
一个数是完美的,仅当它等于它的因数中比它小的所有数之和。例如:28=1+2+4+7+14,所以 28 是完美的。由此我们可以定义一个数的不完美值 F(N),代表 N 和比 N 小的所有 N 的因数之和的差的绝对值。例如:F(6)=|6-1-2-3|=0,现在给出两个正整数 A 和 B,请你求出 F(A)+F(A+1)+...+F(B)。
2022-12-24 21:37:50
150
1
空空如也
用代码输出一个数N的原码,反码和补码,我这样写对吗?
2023-01-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人