- 博客(75)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 一文搞懂C++内存布局:堆、栈及内存分区的完整指南
在C++编程中,内存的管理和分配是程序性能和稳定性的重要组成部分。本文详细介绍了程序运行时的常见内存分区,包括栈区、堆区、代码区、全局数据区(已初始化与未初始化数据)以及常量区。通过清晰的代码示例,解释了栈区用于存储局部变量、函数参数和返回地址,堆区则用于动态分配内存,特别适合存储生命周期不确定的对象。文章还介绍了操作系统管理的内存区域,如动态链接库内存和内核空间。通过本文,读者可以全面了解C++中的内存布局及其在程序运行中的作用,掌握如何合理使用不同的内存分区,从而优化程序性能和内存
2024-09-04 16:27:27
1221
原创 有理数的定义以及证明
有理数(Rational Number)是可以表示为两个整数之比的数,即形如pqqp的数,其中ppp和qqq是整数,且q≠0q \neq 0q0。有理数pq∣pq∈Zq≠0\text{有理数} = \left\{ \frac{p}{q} \mid p, q \in \mathbb{Z}, q \neq 0 \right\}有理数qp∣pq∈Zq0其中,Z\mathbb{Z}Z代表整数集合。
2024-08-29 19:52:07
2248
原创 证明:非完全平方数的平方根是无理数
设 nnn 是一个正整数,如果 nnn 不是完全平方数,那么 n\sqrt{n}n 是无理数。我们可以通过反证法来证明这一命题。假设 n\sqrt{n}n 是有理数,那么我们可以把它表示为两个互质整数 ppp 和 qqq 的比值,即:n=pq\sqrt{n} = \frac{p}{q}n=qp其中,ppp 和 qqq 互质,且 q≠0q \neq 0q=0。两边平方,得到:n=p2q2n = \frac{p^2}{q^2}n=q2p2即:n×q2=p2n \times q^2 = p^
2024-08-29 19:41:17
1376
原创 图论复习总结
图论复习总结前端时间为了打比赛所以急急忙忙地把提高课的图论囫囵吞枣的学完了…然后打完比赛回来在刷一些洛谷上的图论题,发现很多难的图论题还是不会,最多把和提高课里面做过的类似的题给A掉,所以还只是刚入门图论。想着先把入门图论掌握了,我还没有理解透图论的精髓,只能写写一些做过的题。一、单源最短路单源最短路是指,给定一个带权图并给定一个起点,求这个点到其他所有点的最短路径。一般解题思路:根据题意建图根据题目中的限制选择最短路算法实现最短路算法输出答案一般来说,最短路的问题难点在于建图,思
2021-08-05 15:01:13
316
原创 有向无环图最长路(DAG)
有向无环图最长路题目传送门:最长路emmmmm…为什么很多大佬都是写的什么最短路算法、拓扑排序之类的东西…这个图不就是拓扑图嘛(有向无环图)所以我们直接建边然后遍历跑一遍就可以了…不过这里需要注意的是可能有重边,所以我们要记录一下最大的那条边。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const i
2021-08-05 10:20:10
332
原创 Inverse Pair
Inverse PairNow it is 4:30 p.m. on July 26,2021. In the past three days,I have been so afflicted with stomach flu that I have been unable to study.I think I caught a cold while sleeping and woke up feeling dizzy.Then I thought I’d go to the drugstore and
2021-07-26 17:04:09
188
原创 1547E——Air Conditioners(codeforces)
Air ConditionersNow it is 10:50 am on July 20,2021.I came to Shenyang to participate in 45th ICPC Regional Competition Shenyang.At the same time,I was honored to get the iron plate.(Attention,is Iron).And now I can’t express my feeling in words.All righ
2021-07-20 11:15:44
400
1
原创 用拓扑排序解决图论问题
用拓扑排序解决图论问题今天学习了一个关于图论的问题(传送门),这个图论问题很特别(由于我刚入门,没接触过)。它的图里面有两种边,第一种边是无向边,而且边权非负。第二种边是有向边,而且边权可正可负。最特别的是,它的有向边保证无环(如果a和b之间有一条a到b的有向边,那么从b就无法回到a)。然后问题是让我们求一个起点到图中各个点的最短距离。题目本身是一个单源最短路问题,单源最短路一般会用Dijkstra,Folyd,Bellman-ford,还有spfa。这题spfa是会被卡的(否则这题将毫无意义),然
2021-07-01 07:42:55
252
原创 今天的成长
成长今天是2021年5月26日,它是一个既普通又特殊的日子。普通,是因为它和以往一样,6点多起床,上早自习,上高数课,德育答辩,去机房,上近代史纲要,洗衣服,上晚自习,不能再普通了。特殊,是因为我今天第一次得知,原来,我们学校有可以和其它学校做交换生的机会,而且机会很大。但是我知道的太晚了,以至于我没有很多时间准备了,因为做交换生是有条件的,要过英语四六级,但是我现在四级还没过。还有十几天四级考试,主要是我本来不太想准备的,因为没有什么远大的目标,比较闲鱼。但是,听到老师说的,有交换生的名额,我
2021-05-26 15:53:24
162
2
原创 网络编程的学习
网络编程学习个人学习的时候做的一些笔记… 如果大家想学网络编程可以看看这篇文章知识点汇总:1、网络编程的实质就是实现两个(或多个)计算机之间的数据交流。2、网络中的设备,都会有唯一的一个数字标识,IP地址。现在命名IP地址的规定协议是IPv4协议,每个IP地址由4个0~255的数字组合而成,每个数字之间由 " . " 分隔。每个接入网络的计算机都有唯一的IP地址,这个IP地址可能是固定的,也可能是动态的。3、由于IP地址比较长,不容易记忆,所以人们引进了域名的概念,例如 baidu.com。一个I
2021-05-25 17:01:44
236
原创 利用Set查找最大的比某数小的数
利用Set查找最大的比某数小的数由于做到一个算法题需要快速的求出动态数组里面的比某数小的、最大的数,所以我在研究了Set的函数后,自己推敲出了这个用法。Set里面有个函数是“lower_bound(key_value) ,返回第一个大于等于key_value的定位器”。那么既然如此,我们返回的是第一个大于等于某数的,那么上一个,就是比这个数小的、最大的数。比如下面这个实例:#include<iostream>#include<cstdio>#include<cst
2021-05-18 20:12:24
2685
2
原创 学习累了吗,来听听乔布斯的演讲吧!
乔布斯在斯坦福大学的演讲本文本人手打,源自于视频字幕,视频链接乔布斯的三个小故事第一个故事:是关于因果相联我在里德大学读了六个月就退学了,不过我在学校旁听课程又留了一年半,然后再彻底离开,我为什么要退学呢?就要从我的出生说起了。我的生母读研期间未婚先孕有了我,随后她决定让别人收养我。她坚持我未来的养父母是要度过大学的,于是按照她的规划,我将被一对律师夫妇收养。不过当我出生的时候,那对律师夫妇最后时刻改了主意想要个女孩,因此原本在候补名单上的我的养父母,在半夜接到了一个电话,电话说我们这儿意外有了
2021-05-09 09:19:48
227
1
原创 魔板(搜索求最小步数模型题)
魔板(搜索之 “最小步数”)题目来源:AcWing(特别良心的一个网站,“学算法,就上AcWing!”)题目地址:魔板整体思路:1、从初始状态要想到该状态的话,一共为我们提供了三种操作,A,B,C,那我们想到这个状态的话,我们就这三种操作都会使用2、但是我们又不知道具体的我们该如何去操作,所以我们就枚举每一种操作的可能,这就是bfs的搜索3、因为我们有三种操作,所以我们就将三种操作任意组合起来,然后每次都搜索一下就好了4、也就是说我们通过搜索的方式实现我们本不知道如何组织的操作(也就是我们不知
2021-04-06 12:43:03
143
原创 Going Home
Going Home震惊!codeforces上面1800分竟然有暴力水题!题目大意:给你一个数组,然后让你判断里面是否存在四个不同的下标 x,y,z,w,使得 axa_xax+aya_yay=aza_zaz+awa_waw。如果有,请输出YES,并且输出其中任意一组下标。如果没有,输出NO。好家伙这题目把我给吓得啊,1800的分的题我心想怎么着暴力也不可能过吧。然后想了半天优化,实在想不出来,都想把写了的代码清空了,然后去找了题解,没想到题解和我说暴力! 我:???思路:暴力枚举每一种和的
2021-04-01 20:15:54
181
原创 Equalize the Array
Equalize the Array本题是来自于codeforces的一道1500分的题。题目大意:给定一个数组,你需要让让他其中所有的元素出现的次数相等,途径是你可以删除任意个数字。问你需要最少的删除次数。思路:先把原数组( 记为a )转化成各元素出现次数的数组( 记为b ),然后对b进行操作。由于最优解涉及到很多种情况,无法直接算出来,所以最好的方式就是把每种情况对应的操作数算出来,取最小值就好了。具体怎么算呢?先把b排个序,先求一下b的前缀和(记作 s ),然后遍历数组b,每次都以该数为最终的相
2021-04-01 18:30:52
218
原创 1497E1 Square-free division (easy version)
Square-free division (easy version)本题是来自于codeforces1700分的div2的题。题目大意:给你n个数,你把这n这个数用最少的区间划分开,使得区间内任意两个数(位置不同就是不同,大小可以相同)的成绩都不是完全平方数。注意区间必须是连续的。思路:分解质因子+素数筛。素数筛是为了快速判断素数。完全平方数的性质就是,它的质因子的个数是偶数。那么如果两个数它的质因数之和为都为偶数的话,那么二者相乘那就是一个完全平方数。根据这两个性质,我们就可以通过记录 前面数
2021-04-01 14:38:21
299
原创 1499C Minimum Grid Path
Minimum Grid Path本题来自于codeforces1500分div2的题。题目大意:在一个平面直角坐标系内,你需要从(0,0)走到(n,n),只能往右或者往上走,而且最多只能转向n-1次。题目给出一个长度为 n 的数组,数组中的每一个数代表每一段(即每一段同向的路程)中 每单位坐标的消耗值。让你计算从(0,0)走到(n,n)的最小消耗值。思路:由于情况很多也很复杂,且数据范围是10510^5105恐怕dp也不太合适,所以我采用的思路是,把每种决策都计算出来,然后取最小值就好了。关于每种决
2021-04-01 14:25:14
215
原创 1506D Epic Transformation(codeforces)
Epic Transformation本来来自于codeforces1400分div3的题。题目大意:给定一个序列,你可以选择其中任意两个不同的数并删除,可以操作任意次,问你最后序列中会留下几个数。算法思路:先把数组中的数分类,分为出现次数最多的数(记作sum1)和其他数(记作sum2)。如果sum1≥\geq≥sum2,那么答案就是 sum1-sum2。如果sum1<sum2,那么答案就是 (sum2-sum1)%2。具体为什么自行分析,不作赘述。下面是AC代码:#include<i
2021-04-01 14:14:38
346
原创 带分数(acwing题)
带分数(y总字幕版本,思路贼清晰)y总的核心思想是:我们如果用暴力解法的话,n是用不到的,只能用于最后的判断,所以这个时候我们考虑把两边同时乘上c,把乘法转换为除法,然后等式就成了 nc=ca+b,那么我们就可以用上n了,(当然了这个不是重点),而且我们通过观察这个式子,我们本来需要枚举a和b和c,但是我们现在只需要枚举一下a和c就可以了,因为这样子的话b可以通过 b=cn-ca 直接把b算出来,就不需要枚举b了,这样子的话可以优化很多当然了,光有这个思路还是远远不够的,这才只是一个思路,但是你想把
2021-03-30 14:53:11
266
原创 三连击dfs解法
三连击(升级版)看了各位大佬写的题解,好像没什么人用dfs爆搜,那我这边提供一个吧这个方法是我得益于Acwing上的一道题 带分数,和这道题很类似好了,进入正题。这个题目有很多大牛提供了很多的解法,我想说一下我自己想出来的dfs解法。定义满足条件的三个数分别为 aaa,bbb,ccc。首先我们来搜索一下 aaa ,对于每一个满足条件的 aaa ,我们都搜搜索一下对应的 ccc,然后我们我们就可以用满足条件的 aaa 和 ccc,计算出 对应的bbb ,然后我们再进行题目所需要的的判断就好了。
2021-03-30 14:48:17
885
2
原创 二分(发现二分特点)
二分法今天在写一个用二分写的题“路标设置”的时候发现了一个二分很重要的规律。那就是按照我们的正确的思路去二分的话,最后我们得到的一定是最优解,而不需要在二分的时候进行特判。这是我做题的时候总结出来的规律。比如这题:砍树,这题目有两套二分代码都是可以过的:第一种,二分+特判:#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace
2021-03-29 18:04:13
111
原创 捡贝壳(数组区间问题)
捡贝壳题目来源:2021年广东工业大学第十五届文远知行杯程序设计竞赛题目链接:捡贝壳这个题目的话是说给我们一个数组,然后让我们有很多次询问,让我们求一下每次询问的区间[lll,rrr]内,有多少数是 xxx 的倍数。这个题目的数据范围还是比较大的,nnn≤\leq≤10510^5105,询问次数 qqq ≤\leq≤ 5*10510^5105所以我一开始想着是每次查询应该要用O(1)的时间复杂度实现,才不会超时。那这样的话我们就需要把数组给预处理一下,然后才能实现查询O(1)的时间复杂度。但是我
2021-03-28 09:33:14
324
1
原创 树状数组与线段树
树状数组与线段树最近刚学习了两个数据结构,线段树与树状数组,现在来记录一下。树状数组数组数组是一个原理比较复杂的结构,这边的话我的老师y总在蓝桥杯的辅导课里面没有具体介绍它的原理,因为确实很复杂然后也没必要讲,因为只是针对于蓝桥杯的话确实没必要弄清楚原理,会用就行。树状数组基本知识结构类型:一棵结构很神奇的树存储方式:一维数组用途:能够在O(log n) 的时间复杂度内处理前缀和,支持单点修改操作(目前只学了这么多)先上一张y总上课时画树状数组的结构图的图:一看这棵树的结构就感觉很头大有
2021-03-19 10:45:57
977
1
原创 DP(动态规划)学习心得
DP学习心得今天和昨天学了两道dp的题目,刚入门dp的我有了一定的感触。dp的本质其实还是搜索,是在搜索问题上的优化。听了acwing上面y总的闫式dp分析法,感触很深。闫式分析法将dp问题以一种很好理解的方式展现在我的眼前,这个分析法最大的特色就是其对于分析dp问题有一种特定的模式,如下图:y总在讲dp问题的时候,总是会不厌其烦地将这种分析图化给我们看,一步步的教我们如何去分析一个dp问题。他的分析思路很有逻辑性,也很容易让人理解(虽然思路很难想到,但是只要他告诉我了我就能听明白)。很多d
2021-03-13 11:05:42
456
1
原创 染色法判断二分图(加深对于DFS的理解于运用)
染色法判定二分图题目来源:acwing题库题目地址:染色法判定二分图题目描述:给定一个n个点m条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数n和m。接下来m行,每行包含两个整数u和v,表示点u和点v之间存在一条边。输出格式如果给定图是二分图,则输出“Yes”,否则输出“No”。数据范围1≤n,m≤105输入样例:4 41 31 42 32 4输出样例:Yes这个题目的话主要就是对于DFS的运用和理解了,我作为一个初学者,
2021-02-17 12:51:02
181
原创 过年娱乐心得
过年有感现在是2021年2月12日下午17点56分,过年玩了好几天,罪恶感还是比较强的,好多天没学到什么东西了,而且又有很多比赛等着我去参加,我觉得我好垃圾。从现在开始到开学我想闭关修炼了,好好学一些东西,然后准备准备比赛。主要是觉得过年一年难得一次,大家也难得聚这么齐,都是一起长大的朋友,一起玩一下也挺难得的,以后这种日子越来越少了,还是且行且珍惜吧。今晚去接甲路接了一下老元,路上又想起你。不知道为什么,越来越对你着迷。我突然想存钱,然后给你买东西,比如好看的衣服,我看到过很多很好看我很喜欢的
2021-02-12 18:52:31
102
1
原创 烤鸡(学习dfs心得体会)
烤鸡题目来源:洛谷题目地址:洛谷P2089题目背景猪猪 Hanke 得到了一只鸡。题目描述猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 1010 种配料(芥末、孜然等),每种配料可以放 11 到 33 克,任意烤鸡的美味程度为所有配料质量之和。现在, Hanke 想要知道,如果给你一个美味程度 nn ,请输出这 1010 种配料的所有搭配方案。输入格式一个正整数 n,表示美味程度。输出格式第一行,方案总数。第二行至结束,1
2021-02-08 18:59:27
511
原创 BFS
BFS学习心得今天上午听了y总讲的BFS,受益匪浅,做了一个走迷宫的题目。BFS的意思是宽度搜索,与DFS不同,DFS的搜索方式是先搜到底,然后回溯,而BFS是一层一层的往下搜,这样子在每条边的权重相等的情况下就可以实现最短路径问题。而BFS我现在感觉一般都是用一个队列来维护的,把下一层的所有元素全部存放在队列里面,然后再维护这个队列,下一次依次遍历该队列,然后以此类推,每一次都把下一层需要遍历的数据放在队列里面,供下一次遍历。这种思想是,你想由起点到达终点,必须一步步的去实现,那么BFS就是这么完
2021-02-07 10:16:13
121
原创 最短编辑距离(字符串的修改)
最短编辑距离(字符串的修改)题目来源:acwing题库或江西理工大学OJ题目地址:acwing或江理OJ题目描述:给定两个字符串A和B,现在要将A经过若干操作变为B,可进行的操作有:删除–将字符串A中的某个字符删除。插入–在字符串A的某个位置插入某个字符。替换–将字符串A中的某个字符替换为另一个字符。现在请你求出,将A变为B至少需要进行多少次操作。输入格式第一行包含整数n,表示字符串A的长度。第二行包含一个长度为n的字符串A。第三行包含整数m,表示字符串B的长度。第四行包含一个长度
2021-02-04 11:32:01
426
原创 数独检查
数独检查题目来源:acwing题库题目地址:https://www.acwing.com/problem/content/705/题目描述:数独是一种流行的单人游戏。目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字。每个9x9矩阵在游戏开始时都会有部分数字已经给出,通常有一个独特的解决方案。给定完成的N2∗N2数独矩阵,你的任务是确定它是否是有效的解决方案。有效的解决方案必须满足以下条件:每行包含从1到N2的每个数字,每个数字一次。每列包含
2021-02-02 09:48:57
1336
原创 开心的金明
开心的金明题目来源:acwing题库题目地址:https://www.acwing.com/problem/content/description/428/题目描述:金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等
2021-02-01 09:26:39
121
原创 差分矩阵
差分矩阵题目来源:acwing题库题目地址:https://www.acwing.com/problem/content/800/题目描述:输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数x1, y1, x2, y2, c,其中(x1, y1)和(x2, y2)表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上c。请你将进行完所有操作后的矩阵输出。输入格式第一行包含整数n,m,q。接下来n行,每行包含m个整数,表示整数矩阵。接下来q行,
2021-01-25 11:37:24
190
原创 差分
差分题目来源:acwing题库题目地址:https://www.acwing.com/problem/content/799/题目描述:输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表示一个操作。输出格式共一行,包含n个整数,表示最终序列。数据范围1≤n,m≤1
2021-01-25 11:11:24
97
原创 子矩阵的和
子矩阵的和题目来源:acwing题库题目地址:https://www.acwing.com/problem/content/798/题目描述:输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数n,m,q。接下来n行,每行包含m个整数,表示整数矩阵。接下来q行,每行包含四个整数x1, y1, x2, y2,表示一组询问。输出格式共q行,每行输出
2021-01-25 10:04:49
276
1
原创 前缀和
前缀和题目来源:acwing题库题目地址:https://www.acwing.com/problem/content/797/题目描述:输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。输出格式共m行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000
2021-01-24 18:39:10
75
原创 高精度阶乘计算
高精度阶乘计算本文目的给大家介绍一下高精度的阶乘计算。何为高精度?高精度意思不是精确到小数点多少多少位,而是指数据很大很大,超过了long long的范围,导致C/C++无法进行计算,由于long long 的范围还是比较小的,所以必须要有一种计算高精度的方法来解决这个问题。高精度乘法的思想呢是来自于竖式运算,还记得乘法里面的竖式计算吗,比如计算789x123,你会怎么算?我想应该是要这样子去计算吧,所以我们高精度的计算也就是这么来的。竖式计算过程如下:我们在计算的过程中呢,本质上是利用789
2021-01-20 11:50:07
3183
3
原创 打印x图
打印x图题目来源:江西理工大学OJ题目地址:http://oj.jxust.edu.cn/problems/1230题目描述读入数字 n ( n 为奇数,如当 n=3 时图形如下:YOYOXOYOY图形中使用的三个字母分别为:大写字母X,大写字母Y以及大写字母O如当n=7时图形如下:YOOOOOYOYOOOYOOOYOYOOOOOXOOOOOYOYOOOYOOOYOYOOOOOY输入一个数字n(n为奇数,$1输出相应的图形.样例输入7样例输出YOOOOOYO
2021-01-08 12:14:37
652
原创 乐乐学分
乐乐学分题目来源:江西理工大学OJ题目地址:http://oj.jxust.edu.cn/problems/1231题目描述毕业,对于有些同学来说是个烦恼,都是学分惹的祸。想要拿到学分,要么正考成绩>=60,要么补考成绩>=60。现在陈乐乐给你若干门课的学分以及正考成绩与补考成绩,想请你计算下陈乐乐获得的学分。输入第一行输入一个数n表示有n门课。紧接着n行,每一行有三个整数用空格隔开,表示每门课的的学分,正考成绩,补考成绩。输出输出陈乐乐获得的总学分。具体输入输出见样列。样例输
2021-01-08 12:14:24
388
原创 英语单词
英语单词题目来源:江西理工大学OJ题目地址:http://oj.jxust.edu.cn/problems/1232题目描述陈乐乐同学的英语一直拖着他的后腿,但是他最近找到了一种高效的学习方法。所以,他的英语功力呈直线往上飙。下面这题对于他来说,小菜一碟,现在试试你的功力。给你一段英文原文,由单词(每个单词长度小于等于20)和空格组成,以#字符结束,单词数小于等于300个。然后给出此段原文中的一个句子以#字符结束,句子中最多包含30个单词(这个句子中挖去了一个单词用下划线代替),请你找出这个下划线上
2021-01-08 12:14:06
147
大一新生如何学习ACM?
2021-01-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人