
从0开始的异世界编程
文章平均质量分 76
harmis_yz
这个作者很懒,什么都没留下…
展开
-
算法提高 第一课——快速幂
快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。原创 2022-11-07 16:14:00 · 186 阅读 · 0 评论 -
基础算法 第七课——归并排序
从字面上分析,排序就是排序,归并就是归并。它们结合起来,就可以理解为用归并的方法来进行排序。归并:还是从字面上分析,归就想成是回归,并就想成是合并。为什么要合并呢?那肯定是已经分散的数据要合起来啊。那么,就很好理解了:归并就是将某些分散的数据合并起来。知道归并的意思,就能够理解归并排序的意思了:先将一组无序的序列分散至独立的个体,再将已有序的子序列合并,得到完全有序的序列。原创 2022-11-04 20:37:48 · 414 阅读 · 1 评论 -
基础算法 第六课——快速排序(回顾)
首先设定一个分界值,通过该分界值将数组分成左右两部分。将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。原创 2022-11-03 18:24:46 · 525 阅读 · 7 评论 -
2022CSP-J 题解[完整版]
小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b,求 a^b的值是多少即 b 个 a 相乘的值,例如 2^3 即为 3 个 2 相乘,结果为8。“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。小文很快意识到,她的程序里的变量都是 int 类型的。在大多数机器上,int 类型能表示的最大数为 2^{31} - 12 31 −原创 2022-11-01 13:24:06 · 5976 阅读 · 2 评论 -
基础算法 第五课——链表结构
顺序存储结构在(子)程序的说明部分就必须加以说明,以便分配固定大小的存储单元,直到(子) 程序结束,才释放空间。因此,这种存储方式又称为静态存储,所定义的变量称为静态变量。它的优缺点如下:优点:可以通过一个简单的公式随机存取表中的任一元素,逻辑关系上相邻的两个元素在物理位置上也是相邻的,且很容易找到前趋与后继元素。缺点:在线性表的长度不确定时,必须分配最大存储空间,使存储空间得不到充分利用,浪费了宝贵的存储资源;线性表的容量一经定义就难以扩充;在插入和删除线性表的元素时原创 2022-09-24 23:45:27 · 684 阅读 · 3 评论 -
基础算法 第四课——指针的认识与其运用
C++语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里,数据对象是指存储在内存中的一个指定数据类型的数值或字符串,它们都有一个自己的地址,而指针便是保存这个地址的变量。也就是说:指针是一种保存变量地址的变量。前面已经提到内存其实就是一组有序字节组成的数组,数组中,每个字节大小固定,都是 8bit。对这些连续的字节从 0 开始进行编号,每个字节都有唯一的一个编号,这个编号就是内存地址。原创 2022-09-23 20:48:20 · 499 阅读 · 0 评论 -
SPFA算法讲解 [转载]+[摸鱼]+[例题]
SPFA求最短路 [摸鱼][摸鱼][摸鱼]转载 2022-09-23 16:57:18 · 211 阅读 · 0 评论 -
基础算法 第三课——搜索与回溯
搜索与回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。原创 2022-09-21 16:50:19 · 147 阅读 · 0 评论 -
基础算法 第二课——背包问题 [动态规划]
0/1背包问题1.状态函数2.答案3.递推起点和边界4、状态转移方程(递推关系)法一:二维数组(从前往后推)法二:一维滚动数组(从前往后推)完全背包法一:二维数组(从前往后推)法二:一维滚动数组(从前往后推)多重背包法一:视为多次0/1背包(一维滚动数组从后往前推)法二:多件物品看成一个整体(一维滚动数组从后往前推)法三:二进制方法拆分为多件物品的组合(即成为了0/1背包)混合背包原创 2022-09-19 17:03:42 · 353 阅读 · 0 评论 -
基础算法 第一课——高精度算法详解
高精度算法,是一种处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几百亿的大数字。一般的,这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘等运算。对于非常庞大的数字无法在计算机中正常存储。于是,将这个数字拆开成一位一位的,或者是四位四位的存储到一个数组中, 用一个数组去表示一个数字,这样这个数字就被称为是高精度数。原创 2022-09-17 18:24:10 · 1556 阅读 · 4 评论 -
KMP 算法详解
KMP 算法详解转载 2022-09-10 17:47:23 · 250 阅读 · 0 评论 -
[一,二维数组的声明与使用] 从0开始的异世界编程 4
[一,二维数组的声明与使用]原创 2022-08-28 12:09:42 · 413 阅读 · 0 评论 -
从0开始的异世界编程 [3]
从0开始的异世界编程 [3]原创 2022-08-23 17:39:02 · 130 阅读 · 0 评论 -
从0开始的异世界编程 (C++)[2] 输入输出
从0开始的异世界编程 [2]原创 2022-08-14 10:33:21 · 236 阅读 · 0 评论 -
从0开始的异世界编程(C++)[1]
从0开始的异世界编程(C++)[1]原创 2022-08-13 23:34:46 · 220 阅读 · 0 评论