- 博客(30)
- 收藏
- 关注
原创 异或的前缀和性质揭秘
异或运算具备前缀和性质的核心在于其自反性(x^x=0)和结合律。通过预处理前缀异或数组pre_xor,任意区间[l,r]的异或结果可表示为pre_xor[l-1]^pre_xor[r],这与传统前缀和的区间和公式(pre_sum[r]-pre_sum[l-1])逻辑完全对应。实例验证表明,该性质利用异或运算的自抵消特性,能高效剥离出目标区间结果,将区间查询复杂度优化至O(1)。这一特性在算法设计中具有重要应用价值。
2025-09-01 15:06:48
1296
原创 为什么说分段的地址空间是二维的,而分页的地址空间是一维的?
在操作系统的内存管理中,分页和分段是两种不同的内存管理方式,这使得它们的地址空间呈现出不同维度特性,具体如下:
2025-05-19 15:40:01
502
原创 P1908 逆序对
猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。注意序列中可能有重复数字。过 50 万吧 —— 2018.8 chen_zhe。个数,表示给定的序列。序列中每个数字不超过。输出序列中逆序对的数目。请使用较快的输入输出。
2025-04-11 19:37:38
824
原创 向上取整,向下取整和四舍五入
函数类型数学符号C/C++PythonExcel向上取整⌈x⌉⌈x⌉ceil(x)向下取整⌊x⌋⌊x⌋floor(x)四舍五入round(x)
2025-04-10 19:27:09
3236
原创 getline(cin, )
是用于从标准输入流(如键盘)读取一行文本的常用函数。,可以灵活处理复杂输入场景。如需进一步优化或扩展功能,可参考 C++ 标准库网页。
2025-04-06 11:19:54
404
原创 动态规划~01背包问题
0 - 1背包问题指的是有n个物品和一个容量为m的背包,每个物品有对应的体积v[i]和价值w[i],需要从这些物品里挑选若干个放入背包,让背包内物品的总价值达到最大。每个物品仅能选择放入或者不放入背包(即0 - 1选择)。
2025-03-24 21:42:51
468
原创 ...学习笔记
本文总结了C++和Java编程中的核心知识点,重点分析了引用与指针的区别、多维数组指针、常量修饰符等C++难点,以及Java匿名内部类、类路径配置等关键内容。通过代码示例详细解析了指针数组(int *c[10])和数组引用(int *(&pr)[10])的用法及内存布局,并对比了引用与指针的特性差异。文章还涵盖运算符重载、常量指针等进阶主题,为编程学习者提供了清晰的技术要点梳理和实用代码参考。
2025-03-20 17:02:30
260
原创 C++ 链式方法调用
实现连续调用,使代码更简洁、流畅。掌握链式调用的原理和实现方式,可以帮助你编写更优雅的代码,尤其是在设计 API 或使用流式编程时。在 C++ 中,链式方法调用(Chained Method Calls)是一种常见的编程风格,通过让每个方法返回对象的引用(通常是。),使得可以在单行代码中连续调用多个方法。以下是对 C++ 中链式方法调用的详细解析和示例。在 C++ 中,链式方法调用通过返回当前对象的引用(
2025-03-20 16:55:11
881
原创 C++中stoll和stoi的区别
都是用于将字符串转换为数值的函数,但它们的主要区别在于返回的数值类型和范围。适合处理较大的整数。根据实际需求选择合适的函数即可!如果有其他问题,请随时提问。适合处理较小的整数,而。
2025-03-10 09:54:37
686
原创 顶层const和底层const
顶层const(Top-Level const)表示对象本身是常量,不可修改。常见形式:const int a = 10;// 直接修饰变量// 指针本身是常量(不可改变指向)特点:修饰变量或指针本身,而非指向的内容。在拷贝操作中,顶层const会被忽略(例如函数参数传递)。底层const(Low-Level const)表示指针或引用指向的对象是常量,不能通过该指针/引用修改对象的值。常见形式:const int* ptr = &x;// 指向常量的指针// 对常量的引用。
2025-03-03 10:04:49
941
原创 python——生成器
生成器是一种函数,它使用yield关键字而不是return来返回值。当函数执行到yield语句时,函数会暂停执行并返回yield后面的值,同时保存当前的执行状态,包括局部变量的值、指令指针等。下次调用生成器时,函数会从上次暂停的地方继续执行,直到遇到下一个yield语句或者函数结束。例如:yield 1yield 2yield 3这里定义了一个简单的生成器函数,它会依次返回123。当调用这个生成器函数时,它并不会立即执行函数体中的所有代码,而是返回一个生成器对象。例如,,此时gen。
2024-11-24 07:00:00
612
原创 python——CSV文件
CSV(Comma-Separated Values)文件,即逗号分隔值文件,是一种常见的文本格式,用于存储表格数据(数字和文本)。
2024-11-23 14:41:09
715
原创 python——可迭代对象
可迭代对象是实现了__iter__()方法的对象,这个方法返回一个迭代器对象。迭代器是一种特殊的对象,它实现了__next__()方法,用于逐个返回可迭代对象中的元素。例如,字符串、列表、元组、集合、字典等都是可迭代对象。以列表为例:iterable = iter(my_list) # 获取列表的迭代器这里my_list是一个可迭代对象,通过iter()函数获取其迭代器iterable。迭代器对象可以通过不断调用__next__()方法来逐个获取列表中的元素,当没有更多元素时,会引发异常。
2024-11-23 13:06:58
1077
原创 python——运算符重载与特殊方法
运算符重载是指在Python中,通过定义特殊方法,使自定义类的对象能够像内置数据类型一样使用各种运算符,从而实现更自然和直观的操作。特殊方法是以双下划线__开头和结尾的方法,它们在特定的操作或场景下被Python自动调用。
2024-11-23 12:56:16
996
原创 python之异常
开发者可以根据需要自定义异常类,一般继承自Exception或其子类。自定义异常类的命名规则通常以Error或Exception为后缀,这样可以使异常类的用途更加明确:通过自定义异常,可以创建更具针对性的异常类型,用于表示特定的错误情况。例如,在一个特定的业务逻辑中,如果某个条件不满足,可以引发一个自定义的业务异常,而不是使用通用的异常类型。这样可以使异常处理更加精确,便于调试和定位问题。在定义自定义异常类时,可以在类中添加额外的属性或方法,以提供更多关于异常的信息,帮助开发者更好地理解和处理异常情况。
2024-11-22 22:02:22
893
原创 一篇文章让你精通Python的类与对象
在类的方法(特别是构造方法和其他实例方法)中,使用self加上变量名的方式来定义属性。比如在构造方法__init__里写self.属性名 = 初始值这样的语句,就是在给对象定义实例属性,后续在实例方法中就能通过self来访问和操作这些属性了。例如前面Person类的构造方法中通过和分别定义了name和age这两个实例属性。在类定义中,直接在类内部定义的变量就是类属性,而不是在方法内部通过self定义的变量(通过self定义的是实例属性)。count = 0 # 这是类属性property。
2024-11-22 20:11:47
1546
原创 C 语言随机数生成指南
在 C 语言中生成随机数,一般先使用time函数获取当前时间作为种子,通过srand函数设置随机数生成器的种子,然后使用rand函数生成随机数。这样可以保证每次程序运行时都能得到不同的随机数序列,满足大多数对随机数的需求。希望本文能帮助你在 C 语言编程中更好地运用随机数生成功能。
2024-11-10 14:34:32
1094
原创 分享一些适合大学新生入门编程的学习资源
此外,哔哩哔哩为广大编程爱好者和专业开发者提供了各种编程语言和框架的教程,无论是流行的编程语言如 Python、Java、C++,还是当前热门的框架和技术如 React、Django、Spring Boot,都能在哔哩哔哩找到相应的学习资源。同时,Coursera 的课程还提供了实战项目和课程作业,让学生能够在实践中加深对编程知识的掌握,并有机会获得由合作高校或机构认证的证书,这对未来的职业发展和学术进步都非常有帮助。它的学习教程通过详细的文字,具体的实例、丰富的视频,让学习起来非常轻松。
2024-11-06 22:07:06
1506
原创 国外数字孪生平台
AWS IoT TwinMaker是亚马逊云服务(AWS)推出的一款工业数字孪生服务平台。它利用云计算、物联网(IoT)和大数据技术,为企业提供一个构建、运行和管理数字孪生的环境。该平台能够连接各类设备传感器、摄像机等数据源,快速收集、处理数据,并构建出与实体世界相对应的虚拟模型。
2024-11-06 21:54:16
1107
原创 编程小白如何成为大神?大学新生的最佳入门攻略
编程小白如何成为大神?大学新生的最佳入门攻略如何选择适合自己的编程语言考虑兴趣方向如果对网页开发感兴趣,那么HTML、CSS和JavaScript是很好的选择。HTML用于构建网页的结构,CSS用于网页的样式设计,JavaScript则能为网页添加交互功能。例如,想要制作一个具有动画效果的网站菜单,就需要使用JavaScript来实现交互逻辑。对于数据科学和数据分析领域,Python是热门语言。它有丰富的库,如NumPy用于数值计算,Pandas用于数据处理和分析,Matplotlib用于数据
2024-11-02 20:45:48
700
原创 介绍一下辗转相除法
定义辗转相除法,又称为欧几里得算法,是用于求两个正整数的最大公约数的一种古老而有效的算法。原理及计算过程设两个正整数为(a)和(b)((a > b)),用较大的数(a)除以较小的数(b),得到商(q)和余数(r),即(a = bq + r),其中(0\leq r < b)。然后,把除数(b)作为新的被除数,余数(r)作为新的除数,继续进行上述除法运算,得到新的商和余数。重复这个过程,直到余数为(0)。此时,除数就是原来两个数(a)和(b)的最大公约数。例如,求(252)和(
2024-11-02 20:34:21
582
原创 C++算法入门——质数筛(普通筛法,埃氏筛法,线性筛法)
假设后续被筛掉的数为m,m可以看成m = i * prime(j+1) = k * prime(j) * prime(j+1) (k = i / primes[j])那么如果j继续++的话primes[j + 1] > primes[j],后续被筛掉的数就不是被最小质因子筛去的。1.如果i % primes[j] == 0 说明 prime[j] 是 i 的最小质因子。把primes[j]
2024-02-19 17:51:32
2590
2
数据结构,关于内部排序的代码:六大排序算法的插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序,及其比较次数,移动次数的计算,excel表格
2024-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅