- 博客(35)
- 收藏
- 关注
原创 【编程语言】Python
Python由的于1990年代初设计,作为一门叫做的替代品。Python提供了高效的高级,还能简单有效地编程。Python语法和动态类型,以及的本质,使它成为多数平台上写脚本和快速开发应用的, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。Python在各个编程语言中比较适合新手学习,Python解释器易于扩展,可以使用或其他可以通过C调用的语言扩展新的功能和。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的或。
2024-10-05 22:14:25 2653
原创 【编程语言】C++
完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。赋值表达式的类型为等号左边对象的类型,表达式的结果为等号左边对象被赋值后的值,运算的结合性为自右向左。属性和服务是对象构成众多要素中的两种,属性的实质是一个数据项,主要是对对象静态特性进行描述,服务的实质是一个操作序列,主要是对对象动态特征进行描述。C++语言中定义了丰富的运算符,如算术运算符、关系运算符、逻辑运算符等等,有些运算符需要两个操作数,使用形式为:运算符,这样的运算符称为二元运算符(或二目运算符)。
2024-10-05 22:05:14 800
原创 【码极客精讲】B树
如果一个内部节点有2d个键值,那么添加一个键值给此节点的过程,将会拆分2d键值为2个d键值的节点,并把中间值节点添加给父节点。通过最大化内部里层节点的子节点的数量,树的高度减小,存取节点的开销被缩减。辅助的索引,使得查找问题从约为log2N 磁盘读取开销的二分查找,变成logbN 磁盘读取开销的查找,其中b为分块因素(每分块的入口数目:b = 100 入口每分块;在存取节点数据所耗时间远超过处理节点数据所耗时间的情况下,B树在可选的实现中拥有很多优势,因为存取节点的开销被分摊到里层节点的多次操作上。
2024-07-14 17:18:01 863
原创 【码极客精讲】树链剖分
树链剖分,计算机术语,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结构(树状数组、BST、SPLAY、线段树等)来维护每一条链。将树中的边分为:轻边和重边 定义size(X)为以X为根的子树的节点个数。令V为U的儿子节点中size值最大的节点,那么边(U,V)被称为重边,树中重边之外的边被称为轻边。II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值。III. QSUM u v: 询问从点u到点v的路径上的节点的权值和。
2024-07-14 16:50:16 342
原创 【码极客精讲】线段树
线段树是一种,与相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩。线段树是一种,与相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是。
2024-07-11 16:21:32 1017
原创 【码极客精讲】RMQ算法
我们把f[i,j](j≥1)平均分成两段(因为j≥1时,f[i,j]一定是偶数个数字),从i到i+2^(j-1)-1为一段,i+2^(j-1)到i+2^j-1为一段(长度都为2^(j-1))。ST算法(Sparse Table),以求最大值为例,设d[i,j]表示[i,i+2^j-1]这个区间内的最大值,那么在询问到[a,b]区间的最大值时答案就是max(d[a,k], d[b-2^k+1,k]),其中k是满足2^k<=b-a+1(即长度)的最大的k,即k=[ln(b-a+1)/ln(2)]
2024-07-10 15:49:03 689
原创 【码极客精讲】树状数组
采用这个想法,我们可将一个前缀和划分成多个子序列的和,而划分的方法与数的2的幂和具有极其相似的方式。一方面,子序列的个数是其二进制表示中1的个数,另一方面,子序列代表的f[i]的个数也是2的幂。仍然以34为例,Not 0010 0010的结果是 1101 1101(221),加一后为 1101 1110(222), 把 0010 0010与1101 1110作AND,得0000 0010(2)。程序上,((Not I)+1) And I表明了最后一位1的值,位往前数,见到的第一个1,也就是位上的1.
2024-07-10 15:45:25 227
原创 【三体】人物论——章北海
同时从父亲那里接受了“不要被别人看穿真正的意思”“要成为能够深刻复杂思考的人”这样的教育。从某种意义上说,他是人类所拥有而三体人所不具备的能力的体现者,在创造出与人类格格不入的新文明的同时,因为无法舍弃自身的人性而无法成为新文明一员的人物。”决战的胜利,甚至不惜做出超过军人本分的违法行为(为了航天推进方式而在太空狙杀3名反对无工质辐射推进飞船的航天界重要人士),有着危险的一面。为了准备与“三体人”的决战,自愿加入“增援未来”计划而进入人工冬眠状态,从人工冬眠中苏醒后成为“”号执行舰长并结识原舰长。
2024-07-09 17:48:36 447
原创 【码极客精讲】强联通分量
我们使用类比方法,在Tarjan算法中,每次mlik[i]的修改都是由于环的出现(不然,mlik[i]的值不可能变小),每次出现环,在这个环里面只剩下一个mlik[i]没有被改变(深度最低的那个),或者全部被改变,因为那个深度最低的节点在另一个环内。,我们在改进分析的时候,不是先选的树不会连通到其他树上(对于反图GT来说),也就是后选的树没有连通到先选的树,也即先出现的强连通分量收缩的点只能指向后出现的强连通分量收缩的点。可以说是最容易理解,最常用的算法,其比较关键的部分是同时应用了原图G和反图GT。
2024-07-09 17:44:18 589
原创 【真题分享】考级题目——1级(1)
第一天,骑士收到一枚金币;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中。输入为两个整数,第一个整数m表示中心位置细菌的个数(2 ≤ m ≤ 30),第二个整数n表示经过的天数(1 ≤ n ≤ 4)。输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。
2024-07-09 12:41:17 398
原创 【码极客精讲】差分约束系统
例:d[x]-d[y]≥Z如果想连边后求最长路 那么将不等式变形为这种形式 d[x]≥d[y]+z y到x连一条权值为z的边求最短路则变形成d[y]≤d[x]-z x到y连一条权值为-z的边。观察xj-xi≤bk,会发现它类似最短路中的三角不等式d[v]≤d[u]+w[u,v],即d[v]-d[u]≤w[u,v]。则x+d=(x1+d,x2+d,…该问题的一个解为x=(-5,-3,0,-1,-4),另一个解y=(0,2,5,4,1),这2个解是有联系的:y中的每个元素比x中相应的元素大5。
2024-07-09 12:24:55 364
原创 【码极客精讲】SPFA算法
LLL:Large Label Last 策略,设队首元素为i,队列中所有dist值的平均值为x,若dist(i)>x则将i插入到队尾,查找下一元素,直到找到某一i使得dist(i)<=x,则将i出队进行松弛操作。在无权图中,BFS首先到达的顶点所经历的路径一定是最短路(也就是经过的最少顶点数),所以此时利用数组记录节点访问可以使每个顶点只进队一次,但在带权图中,最先到达的顶点所计算出来的路径不一定是最短路。的,所以我们不能放弃数组,而是在处理一个已经在队列中且当前所得的路径比原来更好的顶点时,直接更新。
2024-07-09 11:17:33 498
原创 【三体】人物论——云天明
这时,云天明飞抵DX3906的行星,但未知文明(可能是云天明本人)的光速飞船产生的空间扰动使“归零者”使用超大功率曲率引擎留下的“死线”扩散,程心和关一帆搭乘的飞船被困在包裹整个恒星系的低光速黑洞中。他们还发现了云天明留下的三体制造的647号小宇宙的入口,其中有完整的生态系统和智子,可以自给自足甚至躲过宇宙的最终崩塌。三体危机初年,肺癌晚期的航天发动机专业大学毕业生云天明,用一笔意外之财购买了恒星DX3906,匿名送给大学时代暗恋的同学程心,随后决定将自己安乐死。打击的情报,启动了掩体计划,最后被。
2024-07-09 11:02:38 516
原创 【码极客精讲】最短路问题
如何找出最短路径呢,这里还是用到动态规划的知识,对于任何一个城市而言,i到j的最短距离不外乎存在经过i与j之间的k和不经过k两种可能,所以可以令k=1,2,3,...,n(n是城市的数目),在检查d(ij)与d(ik)+d(kj)的值;所以,若有d(ij)>d(ik)+d(kj),就表示从i出发经过k再到j的距离要比原来的i到j距离短,自然把i到j的d(ij)重写为d(ik)+d(kj),每当一个k查完了,d(ij)就是目前的i到j的最短距离。对(BsP),在字典序意义下有时间复杂性为o(n2)的算法。
2024-07-09 10:58:15 927
原创 【真题分享】20240707全国信息素养大赛复赛真题
a1,求 x,其中 a1和 an不能为 0,如果 x 无解,其中,6875 被加 2 个 50 元,就相当于加 100 元;其中,6875 被加 2 个 50 元,就相当于加 100 元;一个小于 100 万的正整数 n,尝试把 n 变成带分数形式,也就是 n=a+b/c,其中。a,b,c 是三个正整数,并且数字 1~9(不含 0)在 a、b、c 中,必须出现,且只能。含有:6,8 任何一个数字,每出现一次加分。50 元,例如 4326,6875,9918。含有:6,8 任何一个数字,每出现一次加分。
2024-07-08 23:21:04 1038
原创 【三体】人物论——史强
浑身烟味,说话粗声大嗓,是个身材粗壮的中年人。双眼炯炯有神,好像总是带着笑意,眼神中藏着一股无形的杀气,老练而尖锐。观察力敏锐,察言观色几乎到了读心的水平,也很善于抓住他人性格中的弱点。在北京遇见了冬眠苏醒的罗辑和史晓明,苏醒后的年龄仅仅比儿子大5岁。他(汪淼)的心中突然涌起了一阵对史强的憎恨,这个王八蛋怎么会想出这样的主意?首次出现的形象是一个粗鲁的警察,因他不顾人质的死活擅自行动,结果导致一家三口惨死罪犯手中;汪淼返身回去,走到大史身旁,努力克制着自己的愤怒:“你这么说话实在不像一名合格的警官。
2024-07-08 23:14:08 325
原创 【码极客精讲】最小生成树
若(u,v)是G中一条“一个端点在U中(例如:u∈U),另一个端点不在U中的边(例如:v∈V-U),且(u,v)具有最小权值,则一定存在G的一棵最小生成树包括此边(u,v)。在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边的权重,若存在 T 为 E 的子集且为无循环图,使得联通所有结点的的 w(T) 最小,则此 T 为 G 的最小生成树。T'和T的差别仅在于T'用轻边(u,v)取代了T中权重可能更大的紫边(u',v')。
2024-07-08 23:07:49 883
原创 【码极客精讲】AC自动机
也就是说,i是不断增加的,随着i的增加j相应地变化,且j满足以A[i]结尾的长度为j的字符串正好匹配B串的前 j个字符,当A[i+1]≠B[j+1],KMP的策略是调整j的位置(减小j值)使得A[i-j+1..i]与B[1..j]保持匹配且新的B[j+1]恰好与A[i+1]匹配,而next函数恰恰记录了这个j应该调整到的位置。同样AC自动机的失败指针具有同样的功能,也就是说当我们的模式串在Trie上进行匹配时,如果与当前节点的关键字不能继续匹配,就应该去当前节点的失败指针所指向的节点继续进行匹配。
2024-07-08 23:01:14 889
原创 【码极客精讲】字典树
给出N个单词组成的熟词表,以及一篇全用小写英文书写的文章,请你按最早出现的顺序写出所有不在熟词表中的生词。在这道题中,我们可以用数组枚举,用哈希,用字典树,先把熟词建一棵树,然后读入文章进行比较,这种方法效率是比较高的。给定N个互不相同的仅由一个单词构成的英文名,让你将他们按字典序从小到大输出用字典树进行排序,采用数组的方式创建字典树,这棵树的每个结点的所有儿子很显然地按照其字母大小排序。对所有串建立字典树,对于两个串的最长公共前缀的长度即他们所在的结点的公共祖先个数,于是,问题就转化为当时公共祖先问题。
2024-07-08 22:55:40 430
转载 【三体】人物论——托马斯 · 维德
如果他成为执剑者,这一切都不会发生,和平将继续,我们已经等了六十二年,都不得不继续等下去,也许再等半个世纪或更长。在程心冬眠期间研制曲率光速飞船,为便于研制与试验,尝试与政府对立,被程心阻止,后被人类判死刑。但他行,这个混蛋、恶魔、杀人犯、野心家、政治流氓、技术狂人......他行,他有干这事的精神力量和本事,让他去干好了,这是地狱,让他跳进去吧。因为送入太空的物质除去飞船外质量只能限制于半公斤之内,在会场外,托马斯·维德提出所谓”只送大脑”的阶梯计划,并在随后召开的特别联大会议上通过。
2024-07-08 13:58:59 363
原创 【码极客精讲】SHA家族
我们来看看今天的主角:安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的(又称)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由(NSA)所设计,并由(NIST)发布;是美国的政府标准。后四者有时并称为SHA-2。SHA-1在许多安全协定中广为使用,包括和、SSH、
2024-07-08 13:50:52 1012
原创 【码极客精讲】KMP算法
复旦大学朱洪教授对KMP串匹配算法进行了改进,他主要是修改了next函数,在求 next[j]时,不但要求P[i]=P[j-( next[j]-i)](i=1,2,…复旦大学朱洪教授对KMP串匹配算法进行了改进,他主要是修改了next函数,在求 next[j]时,不但要求P[i]=P[j-( next[j]-i)](i=1,2,…给定一个字符或符号组成的字符串目标对象T和一个字符串模式P,模式匹配的目的是在目标T中搜索与模式P完全相同的子串,返回T和P匹配的第一个字符串的首字母位置。
2024-07-08 13:46:19 351
原创 【三体】人物论——罗辑
从《三体》故事情节设置上讲,罗辑跨越了从三体危机之初到太阳系被高级文明的“黑暗”打击摧毁四百多年的全部历史,因此,罗辑的人生历程其实不属于他个人,而更像人类四个多世纪的曲折历史进程的体现,是《三体》的科幻诗学的挽结与完成轴心。罗辑最终没有能够拯救人类,但罗辑他带给人类最多的生的希望、同时也看护着人类的死亡。利用科幻小说这样一个超越现实、容许奇迹的文类,“英雄主义和理想主义的最后一处栖身之地”,刘慈欣让已经逝去的英雄和将会到来的英雄在一个不属于英雄的时代写下了英雄的赞美诗,让他们用决断向自己的人格授勋。
2024-07-08 12:13:38 993
原创 【码极客精讲】队列
队列是一种特殊的,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)。
2024-07-08 11:58:19 534
原创 【码极客精讲】栈
堆栈又名栈(stack),它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。要搞清楚这个概念,首先要明白“栈”原来的意思,如此才能把握本质。
2024-07-06 14:42:14 722
原创 【码极客精讲】动态规划
在多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义,称这种解决多阶段决策最优化的过程为动态规划方法。在上面的例子中状态就是某阶段的出发位置,它既是该阶段某路的起点,同时又是前一阶段某支路的终点。,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义,称这种解决多阶段决策最优化问题的方法为动态规划方法。
2024-07-06 14:32:41 813
原创 【码极客精讲】贪心算法
贪心算法采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心选择,就将所求问题简化为一个规模更小的子问题,通过每一步贪心选择,可得到问题的一个最优解。证明的大致过程为:首先考察问题的一个整体最优解,并证明可修改这个最优解,使其以贪心选择开始,做了贪心选择后,原问题简化为规模更小的类似子问题。例如,平时购物找零钱时,为使找回的零钱的硬币数最少,不要求找零钱的所有方案,而是从最大面值的币种开始,按递减的顺序考虑各面额,先尽量用大面值的面额,当不足大面值时才去考虑下一个较小面值,这就是贪心算法。
2024-07-06 14:26:55 647
原创 【码极客精讲】递推算法
第二步,放编号为k的元素,这时有两种情况.1,把它放到位置n,那么,对于剩下的n-2个元素,就有M(n-2)种方法;2,不把它放到位置n,这时,对于这n-1个元素,有M(n-1)种方法;当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.递推是按照一定的规律来计算序列中的每个项,通常是通过计算前面的一些项来得出序列中的指定项的值。通常是通过计算前面的一些项来得出序列中的指定项的值。
2024-07-06 12:13:47 441 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人