自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 小菜认真刷力扣——“997.有序数组的平方”形象解释

给小白看的形象解释。

2024-06-02 20:38:26 252

原创 【Day2】

水仙花数,倒三角形,分数化小数。

2022-01-04 23:08:19 605

原创 【寒假打卡 DAY1】三位数反转

文章目录前言一、三位数反转二、思考——如果个位是0,反转后应该输出吗?今日Tips前言这里开始记录寒假学习算法以及数据结构的日常。提示:以下是本篇文章正文内容,下面案例可供参考一、三位数反转输入一个三位数,分离出它的百位、十位和个位,反转后输出。样例输入:123样例输出:321#include<stdio.h>int main(){ int n; scanf("%d",&n); printf("%d%d%d",n%10,n%100/10,n/100);.

2022-01-03 20:50:47 1490

原创 深搜(城堡问题)代码

城堡问题代码:#include<iostream>#include<stack>#include<cstring>using namespace std;int R,C;//行列数 int rooms[60][60];int color[60][60];//方块是否被染色 int maxRoomArea=0,roomNum=0;int roomArea;void dfs(int i,int k){ if(color[i][k]) return;

2021-02-28 00:28:50 196

原创 深搜

文章目录深度优先搜索图的表示方法城堡问题深度优先搜索从起点出发,走过的点要做标记,发现没有走过的点,就随意挑一个往前走,走不了就回退,此种路径搜索策略就成为“深度优先搜索”,简称“深搜”。其实成为“远度优先搜索”更易理解。因为这种策略能往前走一步就往前走一步,总是试图走得更远。所谓远近(或深度),就是以距离起点的步数来衡量的。图的表示方法邻接矩阵用二维数组G存放图,G[i][j]表示节点i和j之间的的情况(如有无边,边方向,权值大小等)。遍历复杂度:0(n^2) n为节点数目邻接表.

2021-02-24 00:28:24 128

原创 优先队列的应用

文章目录题目描述样例思路分析代码题目描述驾驶一辆卡车行驶L单位距离。最开始时,卡车上有P单位的汽油。卡车每开1单位距离需要消耗1单位的汽油。如果在途中车上的汽油耗尽,卡车就无法继续前行,因而无法到达终点。在途中一共有N个加油站。第i个加油站在距离起点Ai单位距离的地方,最多可以给卡车加油Bi单位汽油。假设卡车的燃料箱的容量无限大,无论加多少油都没问题。那么请问卡车是否能到达终点?如果可以,输出最少需要加油的次数;否则,输出-1。样例输入N=4,L=25,P=10A={10,14,20,21}.

2021-02-19 23:46:34 184

原创 最短路径和

文章目录题目描述总结题目描述给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。示例输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]返回值12第一行 只能从左往右第一个元素 的值为 原数组的第一个元素 dp[0][0] = a[0][0]dp[0][j] = a[0][j] + dp[0][j-1];第一列元素 只能从上往下dp[i].

2021-02-07 23:40:32 452

原创 最长递增子序列

文章目录最长递增子序列题目描述思路详细思考分析见最长递增子序列NC91link.题目描述给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中字典序最小的)示例输入[1,2,8,6,4]返回值[1,2,4]说明其最长递增子序列有3个,(1,2,8)、(1,2,6)、(1,2,4)其中第三个字典序最小,故答案为(1,2,4)思路动态规划 + 二分查找代码#include <vector>#include <algorit.

2021-02-06 00:17:53 118

原创 简单DP题目NC155

此题目来自牛客网NC155link.文章目录题目描述示例分析总结题目描述一个有n个数组成的数组,取其中一个连续的子序列,并且这个子序列还必须得满足:最多只改变一个数,就可以使得这个连续的子序列是一个严格上升的子序列,求这个连续子序列最长的长度是多少。示例输入[7,2,3,1,5,6]返回值5分析建立一个二维DP,dp[2][len],第一行记录严格递增长度,第二行记录纵容一次严格递增长度。代码如下:class Solution {public: /** *

2021-02-03 19:25:12 119

原创 巧妙利用位运算^

位运算:^ (异或)运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)归零律:a ⊕ a = 0恒等律:a ⊕ 0 = a交换律:a ⊕ b = b ⊕ a结合律:a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;自反:a ⊕ b ⊕ a = b.题目描述1给定一个无序数组arr,找到数组中未出现的最小正整数例如arr = [-1, 2, 3, 4]。返回1arr = [1, 2, 3, 4]。返回5class Solution {public

2021-01-31 00:03:46 131

原创 vector再总结

vector较数组来说使用更加方便,此篇再次总结#include<iostream>#include<algorithm>#include<vector>using namespace std;//降序排序时使用 bool cmp(int a,int b){ return a>b;}int main(){ vector<int> v={1,5,2,5,7,0,3,6,5}; vector<int> v2={1,

2021-01-30 01:02:07 93

原创 NC127最长公共子串

记录简单dp应用,题目来自牛客网NC127 link.文章目录最长公共子串问题描述思路总结最长公共子串问题描述给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。示例1输入:“1AB2345CD”,“12345EF”返回值:“2345”思路利用二维数组dp进行填表,寻找dp[i][j]的最大值maxlen,同时标记出寻找的子串最后一个字符的位置end,最后根据所找出的maxlen以及end的关系将最长公共子串返回。代码:class Sol

2021-01-28 18:17:21 183

原创 C++常用函数总结

系列文章此系列总结常用STL函数文章目录系列文章1、全排列函数1、全排列函数STL提供了两个用来计算排列组合关系的算法,分别是next_permutation和prev_permutation。依其字面意思,next_permutation是当前排列的“下一个”排列组合;prev_permutation是当前排列的“上一个”排列组合。所谓“上一个”、“下一个”的顺序是依照当前排列顺序的字典序。1)next_permutation示例:#include<bits/stdc++.h&gt

2021-01-27 17:31:39 298

原创 2021寒假打卡

本周计划主要学习DP,但还是有所变动过,先学习了一下贪心思想。贪心法贪心法就是遵循某种规则,不断贪心地选取当前最优策略的算法设计方法。搜索算法和动态规划算法是在多种策略中选取最优解。而贪心算法则是一直遵循某种规则,不断地选取当前最优策略。另,记录今天思路错误的一道题题目描述给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。输入[3,1,2,5,2,4]输出5具体请参考样例解释代码如下:class Solution {public:

2021-01-27 01:52:51 165

原创 深度优先搜索(DFS)——回溯法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1、深度优先搜索(DFS)1.1DFS——回溯法二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考1、深度优先搜索(DFS)假设我们在一个迷宫里,以当前的位置为起点,沿着一条路向前走,但凡碰到岔道口时,选择其中的一个岔

2021-01-25 00:09:11 1099 1

原创 谨以此篇记录我的一个思维缺陷

谨以此篇记录我的一个思维缺陷Problem StatementTakahashi had N glasses of liquor.The amount and alcohol percentage of the i-th liquor were Vi milliliters and Pi percent by volume, respectively.Takahashi gets drunk when his alcohol intake exceeds X milliliters.Which of

2021-01-24 00:02:57 160

原创 最大公共子序列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、==最长公共子序列==(LCS)是什么?二、如何解决?1.分析问题2.递推公式3.构造最优解前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、最长公共子序列(LCS)是什么?看一个例子:S1={1,5,2,8,9,3,6},S2={5,6,8,9,

2021-01-23 00:42:12 2556 1

原创 C. Letters

C. Letters链接: link.问题描述有 n 栋楼,标号为1到 n,第i 栋楼,有的房间数为 ai。所有的房间数从1到 n 排序。由所给的每栋楼的房间数和在全部房间排序后的序号,推断出这个房间在哪栋楼的第几个房间。样例分析所给样例有3栋楼,第一栋楼有10个房间,第二栋楼有15个房间,第三栋楼有12个房间。序号为1的房间的具体位置在1栋楼的1个房间;序号为9的房间的具体位置在1栋楼的第9个房间;序号为12的房间的具体位置在第2栋楼的第2个房间(12>10因此对应15,为第二栋楼, 具

2021-01-21 01:17:40 385

原创 C. Numbers on Whiteboard

C. Numbers on Whiteboard链接: link.问题描述:给出连续正整数1,2,3,…,n,进行 n-1 步操作,每一次操作选择消去任意两个数字,并添加这两个数字向上取整后的平均数。显然,进行 n-1 步操作后,只留下一个数字,要使得这个数字最小。输出这个最小的数字,并输出每次消去的那两个数字。分析:要使得最后的这个数字最小,可能我们会首先试着将两端的最大和最小消去,但这样我们得到的其实是向序列中间靠拢的那个数,并不是最小数。试着将最大的两个数消去,由于操作是添加这两个数字求平均

2021-01-19 22:43:09 208

原创 字串问题——最长无重复字符子串、最长公共子串

系列文章目录提示:该系列整理子串问题。文章目录系列文章目录一、找到字符串的最长无重复字符子串1.滑动窗口法:2.双指针+回头遍历一、找到字符串的最长无重复字符子串给定一个数组 arr,返回 arr 的最长无重复的字串的长度。示例:1示例1输入:[2,3,4,5]输出:4示例:2输入:[2,2,3,4]输出:31.滑动窗口法:可以使用一个双指针模拟一个滑动窗口。初始化窗口为 (left, right],所以left从-1开始。窗口不断往右扩大。根据题目的要求,即遇到有重复数

2021-01-18 00:55:42 329

原创 2021Day10 文件流

文章目录一、文件流(File String)二、杂记三、cf提目描述思路一、文件流(File String)两个类型名ifstream、ofstream,表示输入和输出文件流,名称中的 i 和 o 表示输入和输出,f 表示文件名,stream 表示流。示例:将输入文件 b.in 的内容复制到输出文件 b.out,可以这样来读/写文件:#include<fstream>using namespace std;int main(){ ifstream fin("b.in"); o

2021-01-16 00:10:20 105

原创 2021Day8 STL之lower_bound、vector

文章目录一、lower_bound函数二、不定长数组:vector相关函数三、接上篇栈、队列的一个小应用一、lower_bound函数lower_bound的作用是查找“大于或者等于x的第一个位置”。示例:先排序再使用该函数#include<bits/stdc++.h>using namespace std;int main(){ int x=8; int a[]={2,1,5,9,4}; sort(a,a+5); //{2,1,5,9,4}->{1,2,

2021-01-15 00:15:58 456

原创 2021Day7栈、队列

文章目录一、栈1.栈的两个相关函数2.栈的操作例子二、队列1.队列的函数2.队列的操作例子一、栈栈(Stack)是支持push和pop两种操作的数据结构。push是在栈的顶端放入一组数据的操作。反之,pop是从其顶端取出一组数据的操作。因此,最后进入栈的一组数据可以最先被取出(先进后出)。像是羽毛球筒里放入羽毛球和取出羽毛球的操作。1.栈的两个相关函数1)stack::pop 移除最近顶端的数据。2)stack::top 访问最顶端的数据,(此操作通常也被称为 peek)。2.栈.

2021-01-14 00:56:33 73

原创 2021Day6 reverse()小结

文章目录一、reverse() 用法简述二、reverse() 应用1.字符串变形2.进制转换另:cf一、reverse() 用法简述reverse()会将区间[beg,end)内的元素全部逆序。注意:第二个参数是数组最后一个元素的下一个地址。核心代码:string s;int n=s.length();/*将全部string元素逆序*/reverse(s.begin(),s.end());/*将部分元素逆序,如下示例为区间[i,j]*/reverse(s.begin()+i,s.b.

2021-01-12 22:43:44 266

原创 2021DAY6

vectorvector是向量类型,它是一种对象实体,具有值,所以可以看作是变量。它可以容纳许多其他类型的相同实体,被称之为容器。Vector是C++STL的重要一员,使用它时,需要包含头文件vector。代码示例:#include<bits/stdc++.h>using namespace std;int main(){ vector<int> v; cout<<v.size()<<endl;//输出0,定义后是没有长度的 for(int

2021-01-10 00:49:19 71

原创 2021DAY5

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录最大子序列和问题一、暴力解法二、暴力进阶三、分而治之四、在线处理总结最大子序列和问题提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、暴力解法两层循环确定子列的左(i)右端(j)。是第三层循环在左i右j内计算并更新子列和。这个算法遍历了所有子列,思路简单。但带

2021-01-08 23:49:47 115 1

原创 2021DAY4

文章目录前言一、关于空间的使用1.循环2.递归二、计时函数三、杂7杂8的知识点总结1.vector的皮毛运用前言本篇的例子均基于如下问题:写一个函数PrintN,使得传入一个正整数为N,能顺序打出从1到N的全部正整数。一、关于空间的使用1.循环2.递归例:写一个函数PrintN,使得传入一个正整数为N,能顺序打出从1到N的全部正整数。1)循环#include<bits/stdc++.h>using namespace std;void PrintN(int N){.

2021-01-08 00:59:57 91

原创 2021DAY3

cfB. Anton and Digitshttps://codeforces.com/problemset/problem/734/B总体思路:256为优先,32次之。因此,2先提供给256。法1代码如下:#include<bits/stdc++.h>using namespace std;int main(){ int i,ans,a[4],c[3]; for(i=0;i<4;i++) cin>>a[i]; c[0]=a[0]; c[1]=

2021-01-07 01:05:08 91

原创 2021DAY2

文章目录前言一、基础知识二、题1.Ants2.cf总结前言今天还是按照基础知识和刷题两个方向进行的学习。一、基础知识时间复杂度二、题1.Antsn只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离x;,但不知道它当前的朝向。请计算所有蚂蚁落下竿子所需的最短时间和最长时间。思路:*(1)最短时间:*所有的蚂蚁都朝着离端点最近的方向走。由于蚂蚁的

2021-01-06 00:19:16 77

原创 2021DAY1

基础知识数据结构的两大结构以及算法的5个特性。codeforces题目:C.UniqueNumber(https://codeforces.com/problemset/problem/1462/C)分析:要想数越小,则低位的数字应该越大。也就是说从个位开始填数字的话,应该按照 9,8,7,…,1的次序,一直填到各位数值等于所给数值为止。那如果把 1至9都填满,通过累加,我们得到的最大数值为 45。因此,完成代码时,我们首先判断所给数是否大于45,如果大于45,则直接输出 -1。代码:#in

2021-01-05 00:29:54 119 1

空空如也

空空如也

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

TA关注的人

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