- 博客(31)
- 收藏
- 关注
原创 ACM周总结6.19
这两周普遍都有考试,耽误了几节课程,上周的总结也一起并在这周了,临近期末了,课程也结束了,这两周就学的背包问题,还有自己学习的区间dp。可能这部分相对于前面几部分还是比较好理解的,只要前面学的扎实,这部分应该也没有问题。关于背包,有01背包,完全背包,多重背包,以及分组的背包问题。周六又看了区间dp,区间DP,顾名思义是在区间上DP,它的主要思想就是先在小区间进行DP得到最优解,然后再利用小区间的最优解合并求大区间的最优解。刚开始看01背包的时候,感觉这不就是贪心嘛,但是仔细一想还是有所区别的,贪心.
2022-06-19 18:53:26
278
1
原创 ACM周总结6.5
这周继续学习了线性dp,主要就是看这部分的博客,前面看的大部分都是些常见思路题,倒也不算很难,这部分和贪心差不多,自己的思考占主要部分,关键在于状态方程怎么写,但那些相对基础的没有套路的,思路还是很简单的,代码量也比前面的部分少了很多,但那些套路多,结构复杂的,实现起来就没那么简单了,但做出来之后想想,不也就那点东西嘛。例题分析:acwing895 最长上升子序列题意:给定一个长度为 N的数列,求数值严格单调递增的子序列的长度最长是多少。分析:这道题是最基础的dp,dp问题的一般解法为找出问题的状态表达与状
2022-06-06 00:45:41
375
原创 c++笔记总结6.2
流操作: 通过流类定义的公有成员函数进行流操作istream类公有成员函数ostream类公有成员函数流错误状态: 在ios类中定义一个数据成员(状态字),16位,用于记录流的错误状态设置标志字:cin >> dec >> a ;//置十进制输入cin >> hex >> b ;//置十六进制输入cin >> oct >> c ;//置八进制输入格式控制 在ios类中,定义了一个数据成员(标志字)用于记录当前流的格式两种方法: 第一种:ios类中提供了直接设置标志字的格式控制函数(
2022-06-03 01:26:02
364
原创 c++笔记总结5.26
9.4 纯虚函数和抽象类 纯虚函数是一种特殊的虚函数,在基类中声明纯虚函数,不给出其具体实现,在派生类中给出具体实现,基类中的纯虚函数只是一个入口。 virtual 函数类型 函数名(参数表)=0; 包含纯虚函数的基类称为抽象类说明:(1)可以定义抽象类的指针/引用,从而实现动态多态(2)但抽象类不能建立对象、不能作为函数返回类型、不能作为函数参数的类型、不能用于强制类型转换,只能作为其他类的基类来使用(因为纯虚函数没有具体的实现)例:(3)区分:空函数 函数体为空 把函数名赋予0,
2022-06-03 00:53:55
364
原创 ACM周总结5.29
这周主要练习了贪心和线性DP,看了那几篇博客,都是好题,贪心这部分题简单的是真简单,难的是真难,主要在于这个标准怎么去定,还有和搜索并查集等知识结合起来的,就复杂起来了,难度一下子就上来了。这周花在ACM上的时间比前几周少了点,贪心专题练习也才总结了20多道,但好在看的题还行,基本思路是理清楚了,贪心这部分没什么知识点好整理的,主要讲思路和方法,浅总结几道题。uva11039 设计建筑物https://blog.youkuaiyun.com/fouzhe/article/details/50792843这.
2022-05-30 00:08:40
205
原创 c++笔记总结5.19
虚函数的声明virtual只能出现在类定义中函数原型的声明中,不能出现在类外函数体实现的地方class base{ virtual void get( ) ;}void base::get( ) {}virtual void base::get( ) //错误,virtual 关键字只用在类定义里的函数声明中,写函数体时不用。{}小结:(1)当成员函数做友元函数时,在类外定义时,不加friend(2)静态成员,在类外定义时,不加static(3)带默
2022-05-23 23:47:29
227
原创 ACM周总结5.22
这周主要做了最短路径专题练习和对贪心的理解练习。关于对最小生成树的理解和应用在上周已经总结过了,这周主要总结总结最短路径。首先最短路径指的就是两顶点之间经历的边上权值之和最短的路径。结合老师讲的课件和看的博客,总结了下面三个主要的算法。一.Dijkstra...
2022-05-23 00:07:53
150
原创 ACM周总结5.15
这周就是做题,练了n多道并查集跟拓扑排序的题,包括专题练习和周六做的牛客网,这些问题基本可以分为几类。一.最小生成树https://www.luogu.com.cn/problem/P1111https://www.luogu.com.cn/problem/P1195https://www.luogu.com.cn/problem/P1396https://www.luogu.com.cn/problem/P1547https://www.luogu.com.cn/proble...
2022-05-15 23:54:12
239
原创 ACM周总结5.8
这周开始开练习并查集跟拓扑拓排序,关于这部分内容,看了几篇博客,基础知识不算多,老师上课也主要都是讲解题目,很多题目可能要跟前面学的最小生成树还有要学的新知识结合起来用。并查集的应用1.用来合并集合元素,并确定结合数量,查寻元素属于哪个集合。2.在图结构里(图里的点便是元素),确定两点是否处于联通状态,应用举例:(1)Kruskal法最小生成树思路:将所有的边依照长度大小排序,依次从小到大进行行选泽,每次选中一边,就将边两端的点用并查集合并,如果选择的边经并查集查询已经联通,那么跳过这条边。
2022-05-08 15:14:35
1063
原创 感受总结4.26
4.19今天老师又讲了新的知识,包括树和二叉树、堆。但是只要了解概念就行,不用深入的去了解。从今天开始要一步步完成搜索专题的题目,到目前为止已经AC了五六道题了,还大概摸清了近十道题的题意。给自己的任务是一天至少完成两道,就算AC不了也要大概弄懂。就凭实力说的话,简单的搜索题都要几乎1个小时,那些难的更是做不出来,但是也要坚持,能力不是一天就可以飞速提升的,想要提高就必须要坚持,一周不行就一个月,一个月不行就半年,久炼则钢。4.20今天勉勉强强看了两道题,但是好像没有AC,差一点就把 给做出来了
2022-04-26 17:39:33
2208
1
原创 周笔记总结4.17
这周继续学习了数据结构的内容,但这周主要看的还是DFS,BFS的题解和博客,这周看了大概有六十多篇博客,还有很多道题解,其中大部分都是在周六看的,其实很多题的类型是一样的。P1019 [NOIP2000 提高组] 单词接龙 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1019这道题只看题目就感觉很难,刚开始就字符拼接这块写了一大堆,写完搜索不会写了,光找两个字符串的最小重叠部分就写了好多,最后写不下去了,需要太多代码
2022-04-17 17:53:51
3358
原创 周笔记总结4.10
这周继续看了关于DFS和BFS,练习了洛谷上的几道题。学DFS也有两周了,但是感觉还是不能拿捏,关于递归的部分还是很难理解,所以,只能刷一道道题来提高自己,帮助自己理解,那些简单没有太多套路的题还是能做出来的,但好像稍微拐个弯,变一下条件,自己就不会了,所以多刷题,可以帮助自己理解提高。1.p1036题目描述:已知 n个整数 x1,x2,⋯,xn,以及 1 个整数 k(k<n)。从 n个整数中任选 k 个整数相加,可分别得到一系列的和,计算出和为素数共有多少种。和素数环那道题思路类似。..
2022-04-10 23:50:30
149
原创 周笔记总结4.3
从周一到周五每天都看了十篇左右的博客,这周看了大概60多篇博客,首先看的就是关于搜索的,一些题解,思路讲解以及实现过程,然后看的笔记总结,学习到了很多方法和技巧,因自己笔记总结写的一直不太好,这周一直在翻看别人的笔记总结,希望能从中学习到一些新知识,扩充自己的知识面,更重要的是如何写好一篇博客,然后周四晚上打比赛遇到一些问题,编译器通过了,单提交显示The Limit Exceeded,阅读了几篇相关的博客,如何去避免The Limit Exceeded。然后就是几道排序,高精度的题目。这周继续学习了.
2022-04-03 22:05:26
4358
原创 笔记总结3.27
一.搜索1.广度优先搜索(BFS)有时候需要解决连通性,最短问题时,可以考虑使用广度优先搜索。广度优先搜索会优先考虑每种状态和初始状态的距离,与初始状态越接近的情况就会越先考虑。过程:先将初始状态加入到空的队列中 ,然后每次取出队首,找出队首所能转移到的状态,再将其压入队列,如此反复,直到队列为空。形式如下:Q.push(初始状态);//将初始状态入列while(!Q.empty()){State u=Q.front(); //取出队首Q.pop();//出队f..
2022-03-27 16:03:08
346
原创 总结笔记3.20
一.万能头文件 include<bits/stdc++.h>sync_with_stdio(false) 加快程序运行速度srand(time(0)); rand()%10; 生成随机数二.stack1.定义:stack<typename>name;2.stack容器内元素的访问由于栈(stack)本身是一种后进先出的数据结构,在STL的stack只能通过top()来访问栈顶元素。3.操作(1)push()push(x)将x入栈。(2)top...
2022-03-20 12:01:20
228
原创 A+B Problem高精度运算
分别在两行内输入两个500位以内的十进制非负整数,求他们的和。#include <iostream>#include <string>#include <algorithm>using namespace std;#define maxn 520int a[maxn],b[maxn],c[maxn];//用数组来模拟非常长的整数int main(){ string A,B; cin>>A>>B;//输入两个整数
2022-02-23 17:34:43
258
原创 通讯录管理系统
#include<bits/stdc++.h>using namespace std;struct Person{ string name; int sex; int age; string phone; string addr;};#define MAX 1000struct Addressbooks{ struct Person personArray[MAX]; int size;};void addPerson(.
2022-02-20 10:36:53
347
2
原创 第三周笔记总结 2022.02.13
1.学习了内存的程序模型,内存四区:代码区,全局区,栈区,堆区。2.有关引用的相关知识,引用的基本语法,引用的注意事项,引用做函数参数,引用做函数返回值。常量指针,指针常量。3.练习使用struct即struct嵌套,完成了几道应用实例。4.总结algorithm函数下常用的函数,练习使用sort5.system("pause")按任意键继续,system("cls") 清屏。...
2022-02-13 17:17:07
257
原创 algorithm头文件下的常用函数(sort)
sort是用来排序的函数,它根据具体情形使用不同的排序方法。1.如何使用sort排序sort函数的使用必须加上头文件#include<algorithm>,使用方法如下:sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(非必填));可以看到,sort的参数有三个,其中前两个是必填的,而比较函数则可以根据需要填写,如果不写比较函数,则默认对前面给出的区间进行递增排序。int a[6]={9,4,2,5,6,-1}sort(a,a+6);//将a[0]~a[5]
2022-02-10 11:07:20
1896
原创 algorithm头文件下的常用函数(1)
1.max()、min()、abs()max(x,y)和min(x,y)分别返回x和y中的最大值和最小值,且参数必须是两个(可以是浮点数)。如果想要返回三个数x,y,z的最大值,可以使用max(x,max(y,z))的写法。abs(x)返回x的绝对值。注意x必须是整数,浮点数的绝对值请用math头文件下的fabs。2.swap()swap(x,y)用来交换x和y的值。3.reverse()reverse(it,it2)可以将数组指针在[it,it2)之间的元素或容器的迭代器在[it,it2)范
2022-02-10 11:05:23
541
原创 STL笔记总结-pair
1.pair的定义要使用pair,要先添加头文件#include<utility>,由于map的内部实现中涉及pair,因此添加map头文件时会自动添加utility头文件。pair有两个参数,分别对应first和second的数据类型,它们可以是任意基本数据类型或容器。pair<typename1,typename2>name;pair<string,int>p;如果想要在代码中临时构建一个pair,有如下两种方法:(1)将类型定义写在前面,
2022-02-09 15:05:36
192
原创 STL笔记总结-stack
stack翻译为栈,是STL中实现一个后进先出的容器。1.stack的定义要使用stack,应添加头文件#include<stack>。其定义的写法与其他STL容器相同,typename可以为任意基本数据类型或容器。stack<typename>name;2.stack容器内元素的访问由于栈(stack)本身是一种后进先出的数据结构,在STL的stack只能通过top()来访问栈顶元素。3.stack常用函数实例解析(1)push()push(x)将x入栈。(2)
2022-02-09 14:45:28
517
原创 STL笔记总结-priority_queue
priority_queue又称为优先队列。1.priority_queue的定义要使用优先队列,应先添加头文件#include<queue>.priority_queue<typename>name;2.priority_queue容器内元素的访问优先队列没有front()函数,back()函数,只能通过top()函数来访问队首元素(也可以称为堆顶元素),也就是优先级最高的元素。3.priority_queue常用函数实例解析(1)push()push(x)将令x
2022-02-06 20:59:40
703
原创 STL笔记总结-queue
1.queue的定义要使用queue,应先添加头文件#include<queue>。queue<typename>name;2.queue容器内元素的访问由于队列(queue)本身就是一种先进先出的限制性数据结构,因此在STL中只能通过front()来访问队首元素,或是通过back()来访问队尾元素。queue<int>q;for(int i=1;i<=5;i++)q.push(i);printf("%d %d\n",q.front(),q.bac
2022-02-06 20:57:11
952
原创 STL笔记总结-map
*如果要使用map,需要添加头文件#include<map>.1.map的定义单独定义一个map:map<typename1,typename2>mp;其中第一个是键的类型,第二个是值的类型。如果是字符串到整数的映射,必须使用string而不能使用char数组。map的键和值也可以是STL容器,例如可以将一个set容器映射到一个字符串:map<set<int>,string>mp;2.map容器内元素的访问(1)通过下标访问map<c
2022-01-30 11:15:33
558
原创 STL笔记总结-set
1.set的定义。set<typename>name;2.set容器内元素的访问。set只能通过迭代器(iterator)访问:set<typename>: :iterator it ;3.set常用函数实例。(1)insert()insert(x)可将x插入set容器中,并自动递增排序和去重。(2)find()find(value)返回set中对应值为value的迭代器。//set<int>::iterator it=st.find(2) 在se.
2022-01-30 11:11:50
443
原创 第二周总结 2022.1.30
反复翻看总结算法笔记第六章STL的相关知识。复习巩固上周学过的struct结构体,尝试写出通讯录管理系统。在洛谷上参加了一次c++比赛。学会使用vector跟string。完成了班主任布置的五子棋初始页面输出的任务。...
2022-01-30 11:09:41
803
原创 STL笔记总结-string
1.string的定义。定义string的方式跟基本数据类型相同,只需要在string后跟上变量名即可:string str;如果要初始化,可以直接给string类型的变量进行赋值:string str="abcd";2.string中内容的访问。(1)通过下标访问一般来说,可以直接像字符数组那样去访问string。(2)通过迭代器访问。定义:string ::iterator it。string str="abcd";for(string : :iterator it=str....
2022-01-30 10:58:22
911
原创 struct结构体笔记总结
struct结构体1.结构体定义。struct student{ string name; int age; int score;}2.结构体变量创建方式。struct student stu1;stu1.name="张三";stu1.age=18;stu1.score=100;cout<<"姓名:"<<stu1.name<<"年龄:"<<stu1.age<<"分数"<<stu1.score<<...
2022-01-29 17:05:08
591
原创 2022.1.22
在洛谷和openjudge上做题,巩固已学的知识点,练习冒泡排序。看了算法笔记6.1 vector的用法。定义:vector <int> vi;添加元素i:vi.push_back(i);迭代器:vector<int>::iterator it;这样就得到了迭代器it,可通过*it来访问vector里的元素。vector<int>::iterator it=vi.begin();for(vector<int>::iterator .
2022-01-22 18:59:02
554
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人