自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 2022年全国大学生数学建模竞赛总结

高教社杯全国大学生数学建模竞赛总结

2022-11-19 12:54:53 1182 3

原创 数据结构课程设计---哈希表

数据结构课程设计--哈希表

2022-08-20 18:29:31 32

原创 数据结构__哈希表

本篇文章记录哈希表的一些基本操作:代码以及解释如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#define M 97typedef struct P{ char id[12]; char name[7]; char sex[3]; char grade[10]; } HashTable[M];//结构体构建,用于存数据使用 int hash(char id[])//哈希

2022-05-12 18:12:17 348

原创 数据结构__图的深度和广度优先遍历

本篇文章记录数据结构实验内容-----无向图的深度和广度优先遍历。代码:#include<bits/stdc++.h> using namespace std;#define mvnum 100#define maxsize 100 //#define OVERFLOW -1#define ERROR 0#define OK 1typedef char VerTexType;typedef int ArcType;typedef int status;typede

2022-04-27 21:06:14 1103

原创 动态规划2---线性dp&区间dp

本篇文章总结动态规划的第二大类问题,即线性dp问题。题目1:数字三角形题目描述:这道题目怎么想?我们还是从y总的dp分析法出发。在定义坐标的行和列时,我们如下的定义方式:这样的话就好理解了:#include<bits/stdc++.h>using namespace std;const int INF=1e9;int a[505][505];int f[505][505];int n;int main(){ cin>&gt..

2022-04-21 22:03:18 1035

原创 数据结构__二叉树的遍历

本篇文章记录上周数据结构的实验课内容。1.如何建树。2.二叉树的先中后序以及层次遍历的实现。3.计算二叉树深度。4.计算二叉树的总结点数,以及分别计算度为0,1,2的结点数。代码如下:#include<bits/stdc++.h>using namespace std;int sumcount0=0;int sumcount1=0;int sumcount2=0;char ch;int m=0,n=0;typedef int status;typed

2022-04-18 21:26:23 258

原创 动态规划1----背包问题

动态规划是一个非常难啃的问题,模型就非常的多,也没有什么很固定的模板。动态规划的模型有:背包问题线性dp 区间dp 计数类dp 数位统计类dp 状态压缩类dp 树形dp 记忆化搜索其中背包问题的模型就非常之多,这篇文章记录下背包的几大类问题。一:01背包01背包的问题模型,问题如下:以上这是01背包的问题,我们思考的方式采用y总的分析法。即从状态表示和状态计算上看。以上的分析法是y总的分析套路,代码如下://二维#include<bits/stdc++.h&..

2022-03-30 22:23:30 423

原创 将数字1--n按字典序排序后输出前k个数

之前写过一道题目,题目大致意思为:将1--n个数按照字典序排列后,输出前k个数。写的时候还是有问题的,在这里特别记录下。讲解在代码中批注并解释。代码如下:#include<bits/stdc++.h>using namespace std;int a[100000];int n,k;void f(int n){ int total=1;//计数,若达到你想输出的个数k是,循环可以停止。 int begin=1;//作为字典序的数字 int ans=1;//数组记

2022-03-29 09:54:53 902 1

原创 最短路问题

关于最短路有很多很多的算法,针对于不同的情境,点边范围,有很多算法思路。大致如下图:在记忆的时候使用此图,可以跟好的理解,不会记得特别的乱。一:朴素Dijkstra算法朴素Dijkstra算法的时间复杂度为o(n^2),主要是用于单源最短路权值都为正的稠密图中。思想就是,我们先定义一个距离数组表示这个点到起点的距离,刚开始的时候初始化dist[1]=0,其他点距离初始化为正无穷。首先我们要找到离他最近的点到起点的最短路,如果我们确定他是最短的,就可以去往下遍历去更新其他的点。模板

2022-03-25 20:19:05 531

原创 树与图的深度,广度优先遍历

说实话,我一直不想学这一部分,因为我觉得这部分很难学,遇到的题目也很难懂,但是21年蓝桥杯 c++ b组又出了最短路问题,索性觉得我逃不过了,所以说打算花费一周的时间学习1.树与图的存储,2.树与图的深度和广度优先遍历,3.最短路的问题,次篇文章记录1和2的内容,下篇文章记录3的内容,因为内容很多。文章是看了yxc的视频之后来记录下。1.简单介绍首先,树在本质上就是一种图,而图又包含有向图和无向图。我们在存储图的时候,通常采用两种方式。1.邻接矩阵 2.邻接表 。使用邻接矩阵不如使用邻接表好用(

2022-03-25 17:00:53 1030

原创 数据结构__稀疏多项式的加法(C语言)

本篇文章记录下稀疏多项式的加法,利用链表实现两个多项式的加法。代码如下:#include<bits/stdc++.h>using namespace std;typedef int Status;#define OVERFLOW -1#define ERROR 0#define OK 1typedef struct PNode{ float coef;//系数 int expn;//指数 struct PNode *next;//指针 }PNode,*P

2022-03-19 16:48:19 2194

原创 数据结构__图书管理系统(C语言)

记录数据结构的实验一,模拟图书管理系统。代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define INITSIZE 100#define INCREMENT 10typedef int status;typedef struct{ char ISBN[15]; char title[50]; char .

2022-03-12 11:17:41 7326

原创 多个高精度数相(加&乘)和质数的两种重要筛法

本篇文章主要是记录一下这一周的收获。一.多个高精度相加。之前在学习高精度的时候一直不知道怎么处理多个高精度数据连续相加,然后前几天看到蓝桥杯上面有一些题目,就研究了多个高精度相加,还有就是多个高精度相乘。1.多个高精度相加#include<bits/stdc++.h>using namespace std;vector<int> add(vector<int> a,vector<int> b){ int t=0; vector&l

2022-03-06 09:01:23 409 2

原创 用sort遇到的问题

有好几次,我在遇到排序的时候,会遇见题目说,如果两个数据相等,就先输出最先输入的那个,然后看了题解,再看分析。发现sort其实是有两种的,简单的sort,还有就是stable_sort两种,而后者,是可以实现上述功能的,但是在结构体中,用的时候,有些测试点过不去,因此在写题目的时候尽量手写比较好,写法如下:struct p{ int f;//数据 int num;//输入序号,表示先后 }q[5];int cmp(p x,p y){ if(x.f==y.f) return x.

2021-12-05 11:33:33 332

原创 week13反思(快排,归并,二分答案)

反思:最近写题发现前面学的那些语法太长时间不看,不用,就忘了,而且,学的很浅,不能够学以致用。这周主要是快排,递归,还有二分答案的应用,但是大多数的题目都要依赖着答案才能写出来,要不然这个知识点也用不起来。最主要的还是二分答案,这个理解的太浅的话真的用不好。二分答案的话,...

2021-12-05 11:20:16 1212

原创 week12反思

反思:对于思维题的练习需要加强,这两周的重点也都在思维题,但是问题还是比较多的。感觉我的思维不是特别的灵活,需要多做题。此篇博客记录week11上面没有写出来的题目,还有就是本周的写的一些值得反思的题目。一:week11题1.week11思维 - Virtual Judge死亡笔记这道题,大概的意思就是一共几天时间,每页笔记可以记录多少字,然后给出每天必须写多少字,问当天要翻几页笔记。思维题,要好好想如何去记录当页剩余。和如何计数。#include<bits/stdc++...

2021-11-28 12:24:22 471

原创 一些小知识

总结:这周没有安排知识点的学习,然后就,好像这篇文章就没有内容写!!!就来记录一些小的知识点!!!(ps:我这不是敷衍,真的有用哎!!)小知识点一:见到一道题目,题目要求是输出日期,例如 2021-11-27 2021-02-09 2021-08-23 可以发现,对于小于10的月和日的前面需要加上一个0,如果我们不加以区分的接下来我要讲的小知识点的话,我们还有判断手动补零。知识点就是 %02d %2d %d的区别1.%02d:就是我们在输出数据的时候,如果数据正好是一个两...

2021-11-27 17:56:16 234

原创 week11反思

反思:这周写的题目比上周要多很多,感觉还是应该多做题,不然的话还是不太行。这篇主要是记录一下上周周赛比较好的题目,还有就是传智杯初赛的好题,好的知识点。一:week10的好题:一:week10 - Virtual Judge这道题我之所以觉得好,不是因为题目难,而是原来我没有想到的用法。就是set,其用法在我上一篇的博客有讲到。其实就是用到如何去在set中插入一个数组,还有就是set的简单运用。代码:#include<bits/stdc++.h>using na..

2021-11-20 21:47:06 893

原创 set&拓扑排序

这周的主要任务是学习拓扑排序,其次是补题,这个过程中的比较重要的stl是set在这里特别记录一下。然后记录这周学的最重要的算法。一:set的用法介绍set容器中的元素不会重复,当插入集合中已有的元素时,并不会插入进去,而且set容器里的元素自动从小到大排序。即:set里面的元素不重复 且有序。//头文件#include<set>//初始化定义set<int>se;set的不重复性插入在week10的比赛中运用的特别广泛,我们可以单单的插入一.

2021-11-20 21:02:18 564

原创 一个小细节

这周因为体测没有参加重现赛,因此比赛的记录博客仅做一个小细节记录细节来自:算法荣佬!!!!这是c++中的一个小细节,c++在使用时输入输出语句可以用cin和cout,但是会发现耗时是使用scanf和printf耗时的两倍,如何解决?在主函数里加上下面的语句就好了ios::sync_with_stdio(false)cin.tie(0);cout.tie(0);这样处理下来,时间会比scanf和printf时间还要少。还有就是最好不要使用cout<<endl;而是去使用

2021-11-14 11:21:21 860

原创 链表&DFS&BFS

周总结:总体上来,这周的学习内容相对来说很杂乱,也有点难,尤其是链表,模拟链表,因为是刚刚接触,所以在遇到题目的时候,首先是不会用,而且模拟链表中也还尚存着部分知识没有理解。然后牵扯到的dfs还有bfs还是没有办法灵活的运用。最近一周都没有怎么写题,感觉收获比较少,下周我希望自己能够多做一些题目,而不是单纯的学语法,因为仅仅是学习语法,我还是不能做题,而且我也发现,还是要先把基础知识要打牢。一:链表二:栈和队列三:bfs和dfs一:链表首先在链表里面如果是使用指针,一是时间会很长,二

2021-11-14 11:05:22 263

原创 双指针&离散化&合并区间

一:双指针双指针在很多的题目中能够得到广泛的应用,双指针又分为对撞指针和快慢指针。具体讲解可参考博客:​​​​​​算法技巧——双指针算法_努力中的老周的专栏-CSDN博客_双指针算法对于快慢指针我们在具体的做题过程中,会遇到常见题型 如:最长不重复序列 连续子序列和为定值等等举个例子:a b c d c a f r求他的最长不重复元素的个数,我们可以用到快慢指针,此时还要借助map函数。部分代码:for (int i = 0, j = 0; i < s.size();

2021-11-05 21:46:12 132

原创 当输入行数不定and当每行输入数据不定时

此篇用于记录困扰我几天的"世界难题"!!!1.当输入行数不定时在一道题目中,可能并不会告诉你到底让你输入多少行数据,就是让你一直处于输入状态,这有三种解决办法。第一种: int n; while(scanf("%d",&n)!=EOF) { cout<<n<<endl; } int m;第二种: while(cin>>m) { cout<<m<<endl; }第三种:

2021-11-02 21:51:43 265

原创 “九韶杯“记录

“九韶杯”河科院程序设计协会第一届程序设计竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)此篇文章记录一些小但是非常致命的细节。首先是第一题,6的个数。问题是出在0%6也是0,没有直接让他等于个位数字直接等于6.其次是字符串的输入问题c++在输入时,如果在一行里面有空格,系统会默认这是两个字符串,这里的解决方式是,首先在输入的时候用getline函数,其次输入时要加getchar()题解如下#include&l

2021-10-29 21:22:14 131

原创 三柱汉诺塔&四柱汉诺塔

三柱汉诺塔,从整体来看,分为三部1.先让n-1个盘先由a柱放在b柱2.把第n个盘由a柱放在c柱3.将这n-1个盘由b柱移动到c柱而其中的递归过程就是直到这n-1个盘变成一个了并且放到了c盘,那递归就可以结束了。我们可以用节点来考虑这个问题,如图所示其中对于c节点那里,理解起来就是:先让n-1个盘子从x柱移动到z柱子,其中我们借助了z柱子(肯定要借助,不然整体也过不去)然后第n个盘子可以直接过去。最后n-1个盘子借助x柱子从y柱子移动到了z柱子。...

2021-10-20 18:16:28 1865 4

原创 激光导弹&Gundam Unicorn(二维前缀和and二维差分)

激光炸弹和Gundam Unicorn是二维前缀和和二位差分的综合应用。首先是一二维差分,前缀和的模板1.一维前缀和,求某个区间内几个数的和#include<iostream>#include<algorithm>using namespace std;int a[101];int n;int s[101];int main(){ cin >> n; for (int i = 1; i <= n; i++) { cin >

2021-10-19 17:58:47 177

原创 高精度(加减乘除)

当一个数非常大的时候,c++无法直接将两个整形数据相加,这个时候需要用字符串来过渡一下。1.高精度加法:#include<iostream>#include<algorithm>#include<string>using namespace std;int a[100001], b[100001], c[100001];int main(){ string x, y; int m, n; cin >> x >> y;//

2021-10-19 17:29:15 288

原创 一维差分!!!

AcWing 797. 差分 【c++详细题解】 - AcWing差分在解决一个数组[l,r]中间的每个元素全部加上一个常数c的问题上有很大的优势,差分是前缀和的逆运算,在实际解题过程中,往往差分和前缀和同时使用。#include<iostream>#include<algorithm>using namespace std;int n, m, l, r, c;int a[100001];int b[100001];int main(){ cin >&

2021-10-15 17:42:49 67

原创 hist one---记录

https://vjudge.net/contest/458324此次的练习记录三道题F题,G题,H题,查漏补缺。1.首先是F题,是手机电量参观几个咖啡店的题目这道题有几个注意点,1:要注意到达第一个咖啡馆是否还有电,若没有那么程序就可以结束了.2:当在咖啡馆充电时,电量达到最大就不能再往上累计了。这两点是开始时没有注意的地方。代码:#include <iostream>using namespace std;int main() { int n, m,.

2021-10-08 21:22:09 72

原创 practice1--时间复杂度,快排,归并,二分,位运算,桶排

1.算法的时间复杂度,一篇推荐文章。各位学弟学妹,别再看教材了,时间复杂度看这篇就好了_帅地-CSDN博客

2021-09-20 20:05:20 191

原创 二叉树遍历(关于前中后序,两次内部调用自身的递归理解)

首先本道题是我期待已久的题目了,因为总是能看到二叉树的解题方法,而且dfs实际上也是树的遍历的一种。因此这道题我想了很久,也看到了优秀的题解,首先看这个题目洛谷p1030 P1030 [NOIP2001 普及组] 求先序排列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)这道题牵扯到的知识点很多,其中包括1.二叉树的前中后序到底是什么。2.递归函数中两次调用自身函数是如何进行的3.c++中find函数的使用4.还有就是substr函数的用法和注意事项。首先...

2021-09-11 21:02:40 253

原创 关于结构体构建,map,字符串比较(strcmp)

看到一道题,虽然总体上的思路很简单,但是总是有哪个地方卡的自己很难受,想用map,但是不知道如何去操作,结果看了第一篇题解,发现自己的收获还是非常非常多的。先来题目。题目:P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)总体上就是要想办法有对应名字和钱的办法,这里提供两个解决代码,结构体还有map法首先是结构体#include<iostream>#include<cstri

2021-09-03 21:46:30 634

原创 快速排序!

sort函数在一些题目中直接使用会降低代码长度,但是有些题目说明不能采用sort,采用冒泡排序往往会超时,而快速排序法时间复杂度会大大降低。快速排序法:快速排序法(详解)_小白的博客-CSDN博客_快速排序此篇文章有详细的原理解释和实现方法。题目:P1177 【模板】快速排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)代码#include<iostream>#define ll long longint n, a[1000000];usi

2021-09-03 10:17:50 125

原创 最大公因数

先是题目:P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)之前ccpc见过gcd函数,今天看到了,记录一下,比赛好像不能直接使用gcd函数,需要单独写进去,因此,我找到一个能过的写法如下:int gcd(int a, int b) { int r; while (b > 0) { r = a % b; a = b; b = r; } return a;}因此本题代码#in

2021-09-01 18:03:51 162

原创 STL--关于stack--括号匹配

P3056 [USACO12NOV]Clumsy Cows S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)这是关于括号匹配的一道问题。首先了解stack的基本用法。栈为数据结构的一种,是STL中实现的一个先进后出,后进先出的容器1.要使用适配器,需要加入一下头文件:#include <stack> //stack2.函数stack<类型> s;stack< int, vector<int> > stk; /..

2021-08-27 11:30:01 281

原创 关于遍历树图

题目1:记录详情 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)一般题目中说n个点,n-1个边就会想到是树图,但我并没有完全理解,等我完全理解之后,我再来修改#include<bits/stdc++.h>using namespace std;vector <int> g[123456];bool vis[123456];int ans,n,d;void dfs(int now,int dis){ vis[now]=1; if(dis=

2021-08-26 21:59:57 94

原创 2018ccpc网络赛练习记录

题目一:Find Integerhttps://acm.hdu.edu.cn/showproblem.php?pid=6441可能,我要是不看题解的话,我一辈子都不可能写出来这道题的。因为这道真的是我的知识盲区,我都不知道费马定理还有勾股数是啥,我咋可能会写。下面解释都是啥:费马定理:当整数n >2时,关于a, b, c的方程 a^n + b^n = c^n 没有正整数解。由此,我们只需要讨论n<=2的情况即可。(1)当n=0时,会得到等式1+1=1,显然不可能。(2

2021-08-25 20:50:58 138

原创 dfs之填涂颜色问题

题目1:P1506 拯救oibh总部 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)题目很好,我分析的尽量充分一点#include<iostream>#include<cstdio>using namespace std; char ch; int x,y,ans,map[550][550],dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};//dx,dy是上下左右四个方向(把0空了过去) void dfs(

2021-08-13 20:47:48 342

原创 前缀和小练(1)

题目1:AT2412 [JOI 2007 Final]最大の和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)通过测试答案是没有问题的,只是洛谷上提交过不去#include<iostream>#include<algorithm>using namespace std;int n, k;int a[1000];int b[1000];int sum[1000];int main(){ cin >> n >>

2021-08-12 21:03:35 75

原创 双指针练习(1)

题目1:P1716 双调序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)这是我第一次一次提交就满分的题目,很开心。#include<iostream>#include<algorithm>using namespace std;int a[1000];int n, m;int main(){ cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i];

2021-08-11 10:13:44 106

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除