自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [AcWing]789. 数的范围

比较经典的二分。

2023-03-21 22:46:00 338

原创 十四天算法快速入门第十四天之「位运算」

运用异或的性质即可。举例:2^3^4^2^3 等价于 2^2^3^3^4 等价于 0^0^4,结果为4。设置从右往左截取n的每一位(32次)再加入到i中即可。

2022-10-31 18:54:43 301

原创 十四天算法快速入门第十三天之「位运算」

目录题目一:231. 2 的幂 题目描述:题目分析:题解代码:题目二:191. 位1的个数题目描述:题目分析:题解代码: 题目二:191. 位1的个数题目描述:

2022-10-14 12:49:57 344

原创 十四天算法快速入门第十二天之「动态规划」

题目二:198. 打家劫舍题目描述:题目分析:题解代码:题目三:120. 三角形最小路径和题目描述:

2022-10-10 12:30:23 351

原创 十四天算法快速入门第十一天之「递归 / 回溯」

目录题目一:77. 组合 题目描述:题目分析:题解代码:题目二:46. 全排列 题目描述:题目分析: 题解代码:题目三:784. 字母大小写全排列 题目描述: 题目分析:题解代码: 题目二:46. 全排列 题目描述:题目三:784. 字母大小写全排列 题目描述:

2022-10-04 23:40:18 159

原创 十四天算法快速入门第十天之「递归 / 回溯」

目录题目一:21. 合并两个有序链表 题目描述:题目分析:题解代码: 题目二:206. 反转链表题目描述:题目分析: 题解代码: 题目二:206. 反转链表题目描述:

2022-10-02 18:40:45 358

原创 十四天算法快速入门第九天之「广度优先搜索 / 深度优先搜索」

时,也就是当前位置在ret内记录的距离大于上一步的位置在ret内记录的距离时,,保证为最短距离,每一个位置拓展完后再出队即可。ret数组记录mat数组里每个数到0的最短距离。,以此类推,最后再判断有无新鲜的橘子即可。这题运用BFS可以求解,我们可以先创建一个。取上一步的位置在ret内记录的距离再+1。对mat中的每一个0依次入队。经典BFS问题,先将所有。(不小于m*n),接着。,再逐一将其上下左右。

2022-09-29 11:22:16 453

原创 [力扣]34. 在排序数组中查找元素的第一个和最后一个位置

先运用二分找到元素的位置,若没找到返回{-1,-1},找到后再判断这个元素存在 1 个还是 2 个,若为 2 个,再判断刚刚所找到的元素是在左边的元素还是在右边的元素即可。

2022-09-21 13:36:06 192

原创 十四天算法快速入门第八天之「广度优先搜索 / 深度优先搜索」

首先是判断两种指向NULL的情况,树为空或者节点无孩子。其次再进行孩子节点next指针的连接,详细过程见代码注释。这里我们将一棵二叉树合并到另一棵上即可,详细过程见代码注释。

2022-09-17 12:43:14 256

原创 十四天算法快速入门第七天之「广度优先搜索 / 深度优先搜索」

这题使用深度优先遍历的方法,先考虑边界等问题,再进行遍历并记录遍历过的岛屿,最后求岛屿的最大面积即可。这题运用深度优先遍历(广度也可)即可求解,先判断停止遍历的情况,再进行深度优先遍历即可。

2022-09-14 13:56:38 295

原创 十四天算法快速入门第六天之「滑动窗口」

即可,对于会有连续的字符串相同但字符顺序不同的情况,使用。1 位,使得 j - i + 1 (即当前。这题的方法是运用双指针滑动窗口,先用一个。这题我们使用 s1 的字符串在 s2 里。记录字符串每个字符的出现次数。...

2022-08-29 11:03:34 239

原创 十四天算法快速入门第五天之「双指针」

目录题目一:876. 链表的中间结点 题目描述:题目分析:题解代码:题目二:19. 删除链表的倒数第 N 个结点 题目描述:题目分析:题解代码: 题目二:19. 删除链表的倒数第 N 个结点 题目描述:...

2022-07-05 12:14:30 179 1

原创 十四天算法快速入门第四天之「双指针」

题目二:557. 反转字符串中的单词 III题目描述:

2022-06-23 17:37:59 502

原创 十四天算法快速入门第三天之「双指针」

目录题目一:283. 移动零 题目描述:题目分析:题解代码:题目二:167. 两数之和 II - 输入有序数组 题目描述:题目分析:题解代码: 题目二:167. 两数之和 II - 输入有序数组 题目描述:

2022-06-16 18:54:29 220

原创 十四天算法快速入门第二天之「双指针」

文章目录题目一:977. 有序数组的平方题目描述: 题目分析:题解代码:题目二:189. 轮转数组题目描述:题目分析:题解代码:题目二:189. 轮转数组题目描述:我们用示例1为例子来展现这个方法:...

2022-06-10 18:07:19 273

原创 十四天算法快速入门第一天之「二分查找」

写在前面:本文题单均来自力扣的算法刷题计划,开这个系列主要是以题目与题解的形式对一些常见、常用算法进行归类和总结,希望在促进自己学习的同时也能帮助到看到这篇文章的大家。另外,本文并非一天一更~...

2022-06-04 11:44:05 409 5

原创 [洛谷]P1910 L国的战斗之间谍

题目信息:题目分析:这题是二维背包,由题意知我们选出的所有间谍的伪装能力值不能超过m,且我们手头上的钱有限,即我们选出的所有间谍的工资和不能超过我们的钱数x,于是便可以推出状态转移方程:d [ j ] [ k ] = max ( d [ j ] [ k ] , d [ j - b [ i ] ] [ k - c [i ] ] + a [ i] )也就是拿到的资料的最大值题解代码:#include<bits/stdc++.h>using namespace s...

2022-05-30 19:44:01 241

原创 经典贪心问题之圣诞老人的礼物

目录题目信息:题目分析:题解代码:题目信息: 注:4指一共有四箱糖果,15指雪橇共能带走的最大重量为15,接下来输出4行,每行两个数据,第一个数据指这箱糖果的价值,第二个数据指这箱糖果的重量。题目分析:这是一道很典型的贪心问题,因为要带走的糖果价值总和最大,且注意可以拆分成散装带走,也就是说当装了整箱糖果后,若剩下的空间不足以再装下一整箱糖果,可以拆分来装,固这题我们首先要求的就是每箱糖果价值与重量的比值,最大的先装,以此类推,到最后装不满一箱时再拆分。...

2022-05-27 21:22:24 849

原创 [洛谷]P1097 [NOIP2007 提高组] 统计数字

这题需要注意100%的数据最大可能达到200000,所以我们创建一个数组 a[200005] 来存它们,由于每个数占一个位置,所以直接用sort排序后相同的数便连续地存在数组里了,接着只需要用一个循环来判断数组里的第i项与第i-1项是否相等即可,若是相等的,数量加1;若不相等,则输出这个数和此时的数量,再让数量归1即可。由于最后输出的是第n-1项,最后再输出第n项即可。代码如下:#include <bits/stdc++.h>using namespace std;typed...

2022-05-24 15:04:51 486

原创 [洛谷]P2525 Uim的情人节礼物·其之壱

这题我们只需要判断当前这个序列是否存在上一个字典序即可,这里可以用到一个叫做prev_permutation(a,a+n)的一个函数,它可以用来输出上一个序列,所以只需要用它判断一下是否存在上一个字典序即可,存在就输出它,否则输出ERROR。代码如下:#include <bits/stdc++.h>using namespace std;int main(){ int n,a[10000]; cin>>n; for(int i=0;i<n;i++) ..

2022-05-21 13:52:21 158

原创 一篇文带你了解BFS迷宫问题

假如有这么一个迷宫,1代表可走的路,1以外的数字代表墙,这里墙就是2,那么我们从左上的星星标志出发,要走到右下方的星星标志处,最短要走多少步?这种类型的题目便可以使用BFS来解决,步骤共分三步,首先我们创建一个队列并让起点入队(此时起点便为队首元素);第一步:从队首元素处向它下一步能到达的上下左右四个方向拓展;第二步:将能走的地方分别入队(走过的便不再走);第三步:让队首元素出队(这时队列的第二个元素便成了队首元素);接下来重复一二三步即可,直到队列为空或者走到了终点便结束,此时记录

2022-05-18 17:07:40 633 6

原创 [洛谷]P4702 取石子

由于每次就取走一个石子,仔细想想其实就是看这堆石子是奇数还是偶数,是奇数就是Alice赢,否则是Bob赢,然后在判断奇数、偶数的问题上可以使用位运算,让这个数&1,看结果是0还是1,是1则说明这个数的最后一位也是1,这个数就是奇数,否则是偶数,不太会位运算的可以看看深入理解计算机系统这本书,里面有详细解释,使用位运算的原因呢也是因为它速度快,在快速幂模板中有同样的运用。所以很快得出代码:#include <bits/stdc++.h>using namespace std..

2022-05-16 10:21:04 394

原创 [洛谷]P3353 在你窗外闪耀的星星

这题使用前缀和即可求解,毕竟是求某个数组的某个固定范围内和的最大值,但值得注意的是,某个位置可能会有多个星星叠加,所以亮度也是要累计的,且这里的长度1应该是指1这个位置所占的长度,比如窗的宽度是3,即可包含1,2,3三个数字,而不是算它们的间隔。代码如下:#include <bits/stdc++.h>using namespace std;int main(){ int n,w,x,b; int a[100005]={0},aa[100005]={0},maxo=0,...

2022-05-15 15:15:29 299

原创 [洛谷]P1095 [NOIP2007 普及组] 守望者的逃离

这题只需要规定时间t内移动的距离大于或等于到出口的距离s即可成功,否则失败。所以我们按秒来,每一秒跑步和瞬移都一起进行:在每一秒中,跑步的当然不会一直跑而不使用瞬移,所以当这一秒里瞬移后的距离大于了跑步的距离,我们便将跑步的换成瞬移的距离,表明魔法值够先瞬移;瞬移的则是魔法值够10点,就进行一次瞬移,若不够10点,则在这一秒钟待在原地恢复;若在规定时间内有一种方法的移动距离大于或等于到出口的距离s即可输出Yes和当前时间i,否则输出No和最远距离(由于经过替换,最远距离始终是跑步的距离,直接输出跑...

2022-05-12 11:22:41 356

原创 [洛谷]P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目

题解不好说。#include <bits/stdc++.h>using namespace std;int main(){ long long a,b; cin>>a>>b; cout<<a*b-a-b<<endl; return 0;}

2022-05-10 22:25:16 183

原创 [洛谷]P1403 [AHOI2005]约数研究

先按照题目意思暴力了一波,跟预想一样直接超时,只有30分。#include <bits/stdc++.h>using namespace std;int main(){ int n,sum=0; cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) { if(i%j==0) { sum++; } } } cout<<sum<<e...

2022-05-08 11:22:13 567

原创 [洛谷]P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

做这题需要明白一个概念!两个数的积等于它们最大公约数和最小公倍数的积,比如4和6的最大公约数是2,最小公倍数是12,4*6=2*12;所以,我们可以先读入x,y的积,将其设为z,再通过遍历去找能被z整除的一个数,如果这个数的最大公约数仍是x,(由于乘积关系,那么最小公倍数必然是y,则无需再去考虑)便找到了满足要求的一组数了。代码如下:#include <bits/stdc++.h>using namespace std;int gcd(int a,int b) //找a,b(a&

2022-05-07 16:10:05 518

原创 [AcWing]4414. 子序列

线性DP,首先要清楚:偶数=偶数+偶数,偶数=奇数+奇数,奇数=奇数+偶数,具体思路在注释。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N],f[N][2];//这里设f[n][0]是前n项的最大奇数和,f[n][1]是前n项的最大偶数和int main(){ int n,maxone=-1e8; cin>>n; for(int i=1;i<=n;..

2022-04-30 21:24:54 431

原创 [洛谷]P1843 奶牛晒衣服

这题思路是若衣服的湿度能在自然干的条件下用mid天可以晾干,则不需要使用烘干机,否则就使用烘干机,若使用烘干机还需要考虑使用的烘干机的天数会不会超过mid天,若不超过,则可以缩小mid,看更少的天数是否能够烘干衣服,若超过了,就增大mid,换用更长的天数。#include<bits/stdc++.h>#define int long longusing namespace std;int n,a,b;int s[500005];bool check(int mid){ i..

2022-04-29 17:22:23 900 2

原创 经典BFS问题之抓住那头牛(POJ3278)

运用BFS找出最优解即可。#include<iostream>#include<cstring>#include<queue>using namespace std;int n,k;const int maxn=100000;int visited[maxn+10]; //标记走过的路,去重struct step{ int x; //记录位置 int steps; //到x有多少步 step(int xx,int s):x(xx),...

2022-04-24 18:39:05 208

原创 [洛谷]P1226 【模板】快速幂||取余运算

解法都在这里了快速幂解法:数的幂次(c++)_kano_s的博客-优快云博客#include<bits/stdc++.h>using namespace std;typedef long long ll;ll mi(ll n,ll m,ll p){ ll result=1; ll base=n; while(m>0) { if(m&1) { result=result*base%p; } m=m>>1; base=ba.

2022-04-24 17:08:12 327

原创 [洛谷]P1008 [NOIP1998 普及组] 三连击

使用全排列函数把所有不重复的三位数找出来后,用结构体处理排序输出的问题即可。#include<bits/stdc++.h>using namespace std;struct node { int min,mid,max;//符合条件的三个数字 }aa[20];bool cmp(node x,node y){ return x.min<y.min;//每一组数字(3个三位数)每组数字以每组的第一个三位数为基准从小到大排}int main(){ int a..

2022-04-20 19:07:27 669 1

原创 Web前端入门之CSS基础笔记

001-HTML中嵌入CSS样式的第一种方式<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>HTML中嵌入CSS样式的第一种方式:内联定义</title> </head> <body> <!-- 内联定义语法格式? <标签 style="样式名 : 样式值; 样式名

2022-04-18 22:44:30 478 2

原创 Web前端入门之HTML基础笔记

目录1.我的第一个HTML页面2.基本标签3.实体符号4.表格5.表格-单元格的合并6.表格-th标签​7.表格-thead tbody tfoot8.背景颜色和背景图片9.图片10.超链接11.列表12. 表单0113.表单0214.表单0315. 下拉列表多选16.file控件17.hidden控件18.readonly和disabled19.maxlength属性20.HTML元素的id属性21.d...

2022-04-14 22:28:27 687 26

原创 [洛谷]P4913 【深基16.例3】二叉树深度

关于求二叉树最深节点的题,用DFS即可。#include<bits/stdc++.h>using namespace std;struct node{ int l,r; //记录左右节点}a[1005000];int n;int maxone=-1; //最大深度void dfs(int root,int step){ if(root==0) //节点为0 返回 { return ; } maxone=max(maxone,step); //找最大..

2022-04-13 16:23:27 1175

原创 [洛谷]P1551 亲戚

并查集的模板题,什么都不用改,一模一样的,就不解释了,毕竟并查集的解释太多了,我肯定说不详细。#include<bits/stdc++.h>using namespace std;int pre[5010];int n;void init(){ for(int i=1;i<=n;i++) { pre[i]=i; }}int find(int x){ if(pre[x]!=x) { return (pre[x]=find(pre[x])); .

2022-04-11 21:23:04 569 4

原创 [洛谷]P1996 约瑟夫问题

这题用队列解决非常方便,且很好理解,详情请看下方代码以及注释。#include<iostream>#include<queue>using namespace std; int main(){ int n,outnum,nownum = 1; //隔outnum个数出队一次,nownum现在隔的数字个数 queue<int>q; cin>>n>>outnum; for(int i=1;i...

2022-04-11 21:18:36 332 1

原创 [洛谷]P1577 切绳子

这题使用二分来写,先找满足条件能让绳子分成K段及以上的长度,再用二分查找找出那个最大的长度即可。#include<bits/stdc++.h>using namespace std; int a[20000];int max_duan=0;//最长的那段绳子长度int N,K; int tongji(int mid){ int sum=0; for(int j=1;j<=N;j++) { sum += a[j]/mid; //这里求每根绳子除...

2022-04-11 21:04:54 553

原创 [洛谷]约瑟夫问题

#include<iostream>#include<queue>using namespace std; int main(){ int n,outnum,nownum = 1; queue<int>q; cin>>n>>outnum; for(int i=1;i<=n;i++)//初始化队列 q.push(i); wh...

2022-04-07 20:23:58 411

原创 Floyd算法解决蓝桥公园问题

#include<bits/stdc++.h>#define int long longusing namespace std;const int N = 550;int dis[N][N];void Floyd(int n){ for(int k = 1 ; k <= n ; k ++) { for(int i = 1 ; i <= n ; i ++) { for(int j = 1 ; j <= n ; j ++) dis[i...

2022-04-06 18:32:11 381 2

空空如也

空空如也

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

TA关注的人

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