自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++学习笔记:随机数的生成

一、最朴素的方式 首先想到的就是time.h(C++中是ctime)中的time(NULL)/time(0)作种子,写法也就是下面这样:#include <ctime>using namespace std;int main() { srand(time(NULL)); int n1 = rand(); //生成任意0~RAND_MAX(32767)之间的随机数 int n2 = rand() % 3; //生成0~2的随机数 int...

2021-08-30 18:03:43 546

原创 C++学习笔记:vector清空的几种方式

#include <iostream>#include <vector>using namespace std;int main() { vector<int> vec; for(int i = 0; i < 5; i++) { vec.emplace_back(i); } cout << vec.size() << " " << vec.capacity().

2021-08-16 11:11:40 4546

原创 大区间素数的求解

很多时候我们解决问题的时候会需要产生某个区间的素数的模板,那这个时候如果区间很小,如何求解都无所谓;但如果这个区间很大,就涉及到要优化求解素数模板的算法,否则会额外降低效率。一、朴素算法: 最直接的想法就是遍历这个区间内的所有数字并逐个判断是否是素数加以统计。我们就用1~n这个区间为例:int primes[MAXN]; //用来存储1~n之间的素数int c = 0; //1~n之间素数的个数for(int i = 2; i <= n; i++){ bo...

2021-08-11 22:18:29 389

原创 C++学习笔记:右值引用、std::move以及返回值优化

折叠规则: T& + & => T& ; T&& + & => T& ; T& + && => T& ; T&& + && => T&& ;

2021-08-08 21:50:18 3605

原创 KMP算法从陌生到熟悉

目录题目分析解题过程一年之前学的KMP,那时候对着课件上的PPT和网课视频一直在发呆,用手不停地在模拟代码的实现过程,反复地让自己“被动理解”这个算法,结果很明显,假装懂了终究还是欺骗自己。把课件上的代码原封不动地提交一下,这件事让我知道昨天还自信满满地以为我已经掌握了KMP算法。但是这次不一样,经过HDU和LeetCode的捶打之后,思路突然就打开了,写篇博客纪念一下。题目分析:实际上KMP算法就是去匹配一个文本串S中的某个给定模式串P(子串),...

2021-08-06 22:25:07 100

原创 LeetCode-753. 破解保险箱

题目链接:753. 破解保险箱

2021-08-03 16:43:55 612

原创 LeetCode-947. 移除最多的同行或同列石头

题目链接:947. 移除最多的同行或同列石头这道题也是看了题解,才知道是一道图论的题目(后悔没有好好学习离散数学)。做题的方法有很多种,最开始没用图论知识直接当成回溯问题去做直接超时,在自己电脑上跑一个规模是10的小样例一分半才出结果(鬼知道我是怎么等下去的,还好没有单步调试找断点)。如果把所有的石头建立成图,再去进行深度优先搜索找连通分量,能节省不少时间。不过由于最近复习了一下并查集,准备试试手。 顺便粘一下刚刚写的我对并查集的理解:数据结构——并查集 ...

2021-07-28 23:12:37 181

原创 数据结构——并查集

A和B是朋友,B和C是朋友,A和C也就是朋友(管他是不是朋友,俗话说四海之内皆兄弟)。有了这样一个前提,A、B、C同属于一个关系圈。那么如果给你好多对这种“朋友”关系,比方说x和y是朋友,n和z是朋友......问你和我是不是朋友?(当然是了我的铁子!)这时候就需要一个很优秀的数据结构为我们自动地划分好帮派,在查找的时候,只要我们同属一个帮派,那就能断定XX和XX是不是朋友关系。 于是,并查集诞生了!!!所谓并查集,就是要维护一个...

2021-07-27 18:49:15 304

原创 动态规划——最长公共/递增子序列

作为动态规划的基础类问题,最长公共子序列问题(LCS)、最长递增子序列问题(LIS)也是入手动态规划所必须掌握的问题。一、最长公共子序列问题描述:子序列:从已有序列中删去若干元素得到的序列。如(1,3)是(1,2,3)的子序列。公共子序列:给定两个序列X、Y,若存在序列Z既是X的子序列,又是Y的子序列,则称Z是X、Y的公共子序列。最长公共子序列问题:给定两个序列X、Y,求X和Y的最长公共子序列的长度。题目描述很简洁(一个基础问题应有的样子)。回顾一下动态规划...

2021-07-24 13:21:05 783

原创 动态规划——各类背包及优化问题详解

背包问题是动态规划的入坑级问题,掌握了背包问题,你也能骄傲地说一声:“俺也学过动态规划了!!!”。接下来,我将会在本文中展示各类背包问题的动态规划版本的解题思路及全过程,让大家对动态规划有一个新的认识。注:有一类背包问题是贪心类算法问题,解题思路十分直接明了,本文不予讲解。在这里我只讨论典型的动态规划类的背包问题。总体思路: 1.将问题抽象化,拆分成若干个子问题进行最优化以达到整体问题的最优解(背包问题是满足最优性原理的,读者可自行百度,不过并不重要,只是为了有一个成文的定理...

2021-07-19 15:57:09 1405

原创 HDU-3015. Disharmony Trees

目录一、题目1.题目链接2.题意描述3.题目分析二、代码解析三、致谢一、题目Problem DescriptionOne day Sophia finds a very big square. There are n trees in the square. They are all so tall. Sophia is very interesting in them.She finds th...

2021-07-17 23:47:33 143

原创 动态规划——详细入门讲解

动态规划,听起来华丽而又高贵,不禁让许多同学望而却步。实际上它是一只披着狼皮的羊,名字唬人,细品起来,似乎也没有那么困难!接下来就让我来由易到难,逐步为大家剖析这只披着狼皮的小绵羊~引子——硬币问题: 动态规划,显然整个题目的运行求解过程都是在“运动”的,这就代表前一步牵动了下一步的走向,问题在一步一步的移动中得到了最终的解,而如何从最初的问题确定到最终的结果,我们需要有一个东西来记录每一步问题求解到什么状态,转移到下一步需要怎样的转移过程等等。这也就是我们常说的状态转移。实际上所有...

2021-07-15 00:35:53 593

空空如也

空空如也

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

TA关注的人

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