刷新
[数据结构] 树与二叉树

博主头像 树的基本概念 树的定义 树是由\(n(n \geq 0)\)个节点组成的有限集。当\(n = 0\)时,称为空树。 任意一棵非空树应满足以下两点: (1)有且仅有一个特定的称为根的节点; (2)当\(n > 1\)时,其余节点可分为\(m(m>0)\)个互不相交的有限集\(T_1, T_2, \do ...

北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统

博主头像 北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统 北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统 京准电子科技官微——ahjzsz 前言 近几年来,随着计算机自动化系统水平的提高,在各大计算机监控系统、微机保护装置、微机故障录波装置以及各类数据管理机得到了广泛的应用,而 ...

线性数据结构:数组、受限数组(栈、队列)、线性表

博主头像 1. 数组 数组定义 数组(Array)是有序的元素序列。属于线性结构(有且仅有一个前驱、有且仅有一个后继)。 数组特点 数组的关键在于在内存中的物理地址对应的是一段连续的内存。这意味着如果想要在任意位置删除/新增一个元素,那么该位置往后的所有元素,都需要往前挪/往后挪一个位置。假设数组的长度是 n ...

AtCoder Beginner Contest 342

博主头像 A - Yay! (abc342 A) 题目大意 给定一个字符串,两个字符,其中一个只出现一次,找出它的下标。 解题思路 看第一个字符出现次数,如果是\(1\)则就是它,否则就是不是它的字符。 神奇的代码 #include <bits/stdc++.h> using namespace std; u ...

山海经(线段树)题解

博主头像 原题链接:COGS 775 题目描述: “南山之首曰鹊山。其首曰招摇之山,临于西海之上,多桂,多金玉。有草焉,其状如韭而青华,其名曰祝余,食之不饥……又东三百里,曰堂庭之山,多棪木,多白猿,多水玉,多黄金。又东三百八十里,曰猨翼之山,其中多怪兽,水多怪鱼,多白玉,多蝮虫,多怪蛇,名怪木,不可以上。… ...

Java使用遗传算法,寻找十滴水问题的最优解

近期某手游出了个活动,经确认发现本质为十滴水游戏。 简单说一下规则,棋盘大小通常为6x6,在游戏开始时,棋盘随机有若干水珠,其大小范围为1-4。点击棋盘内的一格,会消耗玩家持有的1个小水滴,同时使得该单元格的水珠大小+1。如果水珠大小超过4,则水珠发生爆炸并消失,同时向四个方向各发射1个小水滴。小水 ...

数学专题集训笔记

博主头像 2024年二月信息集训是数学专题,请来了101的高考前十名lsy学长来给我们介绍OI中的数学,主要包括了数论专题,博弈论与容斥。 ...

数组 容器 递归 普通排序 线性排序

《数据结构与算法之美》读书笔记 写在前面 这本书的大部分内容比较浅显,因此只挑DSAA课程上没有涉及或没有深入讨论的点总结 第二章 数组相关 提高传统数组插入/删除数据效率的方法: 如果插入的数据不要求有序,可以直接把某位的原数据替换成新数据,然后把原数据放到数组末尾,避免大面积的数据移动。 删除时 ...

AtCoder Beginner Contest 341

博主头像 A - Print 341 (abc341 A) 题目大意 给定\(n\),输出 \(n\)个 \(0\)和 \(n+1\)个 \(1\)交替的字符串。 解题思路 \(101010...\)循环输出即可。 神奇的代码 n = input() s = "10" * int(n) + "1" print ...

[数据结构] 串与KMP算法详解

博主头像 写在前面 今天是农历大年初三,祝大家新年快乐! 尽管新旧交替只是一个瞬间,在大家互祝新年快乐的瞬间,在时钟倒计时数到零的瞬间,在烟花在黑色幕布绽放的瞬间,在心底默默许下愿望的瞬间……跨入新的一年,并不意味了一切都会朝着更美好,也没有什么会从天而降,我们赋予了它这份意义,让它自然裹挟着新的爱与希望而来 ...

codeforce:800-900分段刷题总结

博主头像 1.博弈论 Wallet Exchange 爱丽丝和鲍勃很无聊,于是他们决定用自己的钱包玩一个游戏。爱丽丝的钱包里有 a 枚硬币,而鲍勃的钱包里有 b 枚硬币。 双方轮流玩,由爱丽丝先走棋。在每个回合中,玩家将按顺序执行以下步骤: 选择与对手交换钱包,或保留现有钱包。 从玩家当前钱包中取出 1 个硬 ...

单调队列

博主头像 单调队列 239. 滑动窗口最大值 int *maxSlidingWindow(int *nums, int numsSize, int k, int *returnSize) { *returnSize = numsSize - k + 1; int *res = (int *) malloc(s ...

AtCoder Beginner Contest 340

博主头像 A - Arithmetic Progression (abc340 A) 题目大意 给定等差数列的首项、末项、公差。 输出这个等差数列。 解题思路 从首相依次累加公差到末项即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; using L ...

滑动窗口

博主头像 滑动窗口 209. 长度最小的子数组 int min(int a, int b) { return a > b ? b : a; } int minSubArrayLen(int target, int *nums, int numsSize) { int res = 0x7fffffff; for ...

构建前缀信息

博主头像 构建前缀信息 303. 区域和检索 - 数组不可变 构建前缀和数组,快速计算子数组区间和 class NumArray { public int[] prefixSum; public NumArray(int[] nums) { prefixSum = new int[nums.length + ...

子数组最大累加和

博主头像 子数组最大累加和 53. 最大子数组和 返回子数组最大累加和 返回子数组的开始和结束位置 int max(int a, int b, int c) { int d = a > b ? a : b; return d > c ? d : c; } // 必须经过mid和mid+1 int maxCro ...

[数据结构] 队列

博主头像 队列的基本概念 队列(Queue),是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队,删除元素称为出队。其操作特性是先进先出 队列的常见操作: 函数名 功能 InitQueue(*Q) 初始化队列,构造一个空队列Q QueueEmpty(Q) 判断队 ...

[数据结构] 数组与特殊矩阵

博主头像 写在前面 偷懒,先写了数组,队列要画图,所以今天就先不写了 数组的定义 数组是由n个相同类型的数据元素构成的有限序列。每个数据元素被称为一个数组元素,每个元素在n个线性关系中的序号称为该元素的下标,下标的取值范围称为数组的维界。 数组与线性表的关系:数组是线性表的推广。一维数组可视为一个线性表,二维 ...

[数据结构] 栈

博主头像 栈的定义及特点 栈(Stack)是只允许在一端进行插入或删除操作的线性表,如图所示: 栈顶(top):线性表允许进行插入、删除的一端; 栈底(bottom):不允许进行插入和删除的一端; 空栈:不含任何元素的空表。 如上图所示,设某个栈\(S=(a_1, a_2, a_3, a_4, a_5)\), ...

<1···456···31>