自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode79. 单词搜索

DFS

2022-10-12 22:02:12 89 1

原创 Queue队列--线性表之一

队列简介

2022-08-30 20:45:39 373

原创 STL vector超大型二维数组

vector的小部分应用

2022-08-29 17:34:51 608 1

原创 扩展欧几里得算法

前置知识点:辗转相除法int gcd(int a,int b){ if(b == 0) { return a; } return gcd(b,a%b);}现在要求关于未知数x,y的方程ax+by=m的通解贝祖等式:ax+by=m有解的充要条件是m为gcd(a,b)的倍数否则无解这里对有解时进行讨论,不妨将m视为1倍的gcd(a,b),最后两边同乘倍数依然可得解x,y;设存在x1,y1使得 bx1+(a%b)*y1=gcd

2022-04-08 18:52:50 270

原创 蓝桥杯2021A第二场 负载均衡--优先队列

题目详情 - I.负载均衡 - 追梦算法网 (mangata.ltd)除代码中注释,还有要总结的:1.若一个状态只受前面的状态影响而与后面状态无关,则含有这种状态的题目可以变输入变输出;2.想到了暴力的循环就写,总能蹭点分,说不定还就对了。代码:#include<iostream>#include<queue>#include<utility>//pair头文件#define pii pair<int,int>//创建pair类型的队

2022-04-07 21:19:47 292

原创 DFS代替n重循环---洛谷P1149 火柴棒等式

#include<iostream>using namespace std;int n,cnt=0,b[4],torch[1001] = { 6,2,5,5,4,5,6,3,7,6 };//b储存a,b,c三个数void dfs(int k){ if (n < 0) return; int j; for (j = 0; j < 999; j++) { b[k] = j; n = n - torch[j]; if (k == 3 &&am.

2022-03-27 14:31:48 119

原创 深度优先搜索小总结

一.对于有明显起点的题目,可以联想图的形式进行DFS;二.对于起点不明显的题目,可以将题目中的状态分步或者说分类,以实现不同分支继续进行DFS;这种状态需要自行判断找出,一般要找状态数目少的,这样的话,每一次dfs中函数调用的次数就少。比如洛谷P3392 涂国旗P3392 涂国旗 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn),题目要求一个坐标系中每一行涂一种颜色,共给出三种颜色,且三种颜色顺序必须是白,蓝,红;该题的状态可以是1.判断每一行可以涂多少种颜色2.前i行涂

2022-03-27 00:02:29 365

原创 洛谷P1157 组合的输出

#include<iostream>using namespace std;int n,r,a[100],m=0;void dfs(int k, int cnt){ if (cnt == r) { for (int l = 0; l < cnt; l++) printf("%3d", a[l]); cout << endl; return; } if (k + 1 > n) return; a[m++] = k+1; dfs(k.

2022-03-27 00:01:47 561

原创 洛谷P1101 单词方阵

#include<iostream>#include<string>#include<cstring>using namespace std;int cnt = 0,k=0,l=0,n,fndx[10000],fndy[10000],color[1000][1000], tmpr[100000], tmpc[100000];int dx[8] = { 1,1,0,-1,-1,- 1,0,1 }, dy[8] = { 0,-1,-1,-1,0,1,1,1 };/.

2022-03-26 12:26:59 612

原创 回溯时机与种类+洛谷P1605 迷宫

回溯时机:当一个节点的一条分支走完回到该节点后,这个节点的其他分支会受到沿前一个分支搜索时改变的值的影响时,需要回溯。而这个值往往是全局变量,且不在终止条件中。不要用到回溯的例题:(9条消息) 洛谷P2036 [COCI2008-2009#2] PERKET_IOv0id的博客-CSDN博客下面一题即用到回溯。洛谷P1605 迷宫:#include<iostream>#include<cstring>using namespace std;in

2022-03-25 23:36:40 111

原创 洛谷P2036 [COCI2008-2009#2] PERKET

基础DFS:#include<iostream>#include<cstring>using namespace std;//对每个配料:1.用 2.不用int n, a[20], c[20],ans=2<<20;void dfs(int s,int b,int i){ if (i == n)//每种情况有各自的最小值 { if (s == 1 && b == 0)//除去一个都不用--清水 return; ans =

2022-03-25 21:05:33 357

原创 浅尝剪枝算法

算最短路径等问题:1.中间路径值与已尝试的终点路径值进行比较;2.中间路径值与已尝试的中间路径值进行比较(一般比较条件可能不止一个);

2022-03-23 22:17:03 348

原创 递归小总结

一、递归的作用1)替代多重循环,如n皇后问题;多要逐步遍历问题;2)解决本来就是用递归形式定义的问题,如波兰表达式问题、四则运算表达式求值问题;多要分类;3)将问题分解为规模更小的子问题进行求解。如爬楼梯问题、放苹果问题;多要先分类再列出递推式;分析:阶乘的求解:列递推式汉诺塔问题:分步n皇后问题:逐步遍历波兰表达式:分类四则运算表达式求值问题:分类爬楼梯问题:分类后推出递推式放苹果问题:先根据题目参数大小不同的情况来分类,再根据放法分类列出递推式

2022-03-21 17:57:20 237

原创 洛谷P1464 Function--递归+记忆化搜索

1.记忆化搜索:(1)思想:记忆化搜索的思想是,在搜索过程中,会有很多重复计算,如果我们能记录一些状态的答案,就可以减少重复搜索量。(2)适用范围:搜索的答案与路径相关,而不是走到底才能得到答案的题目;(3)实现:用数组等容器存放中间状态;(4)如何与递归结合:递归函数中不直接返回值,而是先把值储存在数组中,最后再return 刚刚存在数组中的值。2.例题P1464对于一个递归函数w(a,b,c)w(a,b,c)如果a \le 0a≤0orb \l..

2022-03-19 20:45:42 852

原创 STL next_permutation函数

next_permutation(start,end)功能:使得参数范围内的容器元素按照下一个排列排序,“下一个”指按字典序升序排序;如123的下一个:132再下一个:213,231,312321.返回值:当找不到下一个排列时返回false,否则返回true;其参数start,end类似于sort函数中的参数,排序范围为[start,end),左闭右开,对全范围排序时end=start+length;该函数也适用于char和string类型:s

2022-03-16 10:50:49 146

原创 洛谷P1618 三连击(升级版)

1.首战自己写:(巨蠢)80分#include<iostream>using namespace std;int tc[10000][3], A_[10000], B_[10000], C_[10000];int main(){ int a, b, c, d, e, f, g, h, i = 0 , A, B, C, tmp1, tmp2,tmp3, k, judge[11] = { 0 }, p = 0, q = 0,x=0,cnt[10000],flag=0; cin

2022-03-14 16:07:44 583

原创 C++string类

了解更多关于String的用法详解,前往C++ string 用法详解 (byvoid.com)先声明一个string 类型的变量:string strinfo;一、函数介绍1.strinfo.substr(指定起始位置pos,长度n):功能:复制子字符串,返回值为长度为n的子字符串(主要应用);其中pos为0时表示从字符串第0个字符开始。例:cout << strinfo.substr(first, last - first + 1)<<endl;.

2022-03-10 18:14:23 428

原创 洛谷P1098 字符串的展开

初学string#include<iostream>#include<cstdio>#include<string>using namespace std;//1.找到减号 2.储存减号前的子串//3.判断(5)来确定新串lon的起始位置//4.填充减号串sub//5.合并//问题是新的lon头会是减号,所以要把减号也算进sub[i]内,解决这个问题后还要考虑结尾是减号时如何结束循环int main(){ int p1, p2, p3, ri.

2022-03-10 18:01:48 784

原创 模拟:洛谷P1563 玩具谜题

总结:某些需要搜索的情况下,使用数组比使用链表快捷的多,如本题中通过下标的变化来搜索,使用链表则需要循环来消耗太多时间。初做法:(几个测试点超时:80分)#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;typedef struct list { int dir; char w[10]; list* next; list* befo;}node;

2022-03-08 15:09:24 806

原创 Sort函数的应用

Sort是C++std中含有的函数,而C语言中并没有。因此不仅需要头文件#include<iostream>和#include<cstdio>还需要#include<algorithm>(Sort的头文件)sort(a,a+n,cmp)含有三个参数,第一个参数是起始地址,第二个参数是末地址;这两个地址一般是数组(包括结构体数组)。其表示对[a,a+n)区间内的元素以cmp的方式进行排序,注意是左闭右开。若对整个数组进行排序则n就等于数组长

2022-03-05 23:37:08 766

原创 浅尝桶排序

#include<stdio.h>#include<stdlib.h>#include<string.h>void insertsort(int* bucket,int n){ int i, j; for (i = 1; i < n; i++) for (j = i - 1; j >= 0; j--) { int temp = bucket[i]; while (j >= 0 && bucket[j].

2022-03-05 11:20:11 47

原创 归并排序小总结

归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。1. 基本思想归并排序是用分治思想,分治模式在每一层递归上有三个步骤:分解(Divide):将n个元素分成个含n/2个元素的子序列。 解决(Conquer):用合并排序法对两个子序列递归的排序。 合并(Combine):合并两个已排序的子序

2022-02-27 23:13:39 396

原创 选择排序(Selection Sort)和插入排序(Insert Sort)和希尔排序(Shell’s Sort)

遍历所有数据,先在数据中找出最大或最小的元素,放到序列的起始;然后再从余下的数据中继续寻找最大或最小的元素,依次放到序列中直到所有数据有序。原始数据的排列顺序不会影响程序耗费时间O(n²),相对费时,不适合大量数据排序。平均时间复杂度为O(n²),空间复杂度为O(1),是一种不稳定的排序算法。C语言代码如下:#include<stdio.h>int a[100001];void exmin(int* arr, int num,int len){ int i,k=num,

2022-02-16 10:45:57 796

原创 计数排序的简单总结

计数排序不发生比较,较为节约时间,但较为耗费空间,其平均时间复杂度:o(n+k)(平方)、空间复杂度:o(k);计数排序是稳定排序、外部排序;局限性在于需要原数组集中在一定范围内,否则该算法极占空间;动图如下:算法要注意的是优化后的代码如何写。3个步骤如下://第0步 找最大值和最小值1.算法需要新建一个数组cnt[d],其中d为数组中的“最大值减最小值+1”,在c语言中由于数组下标不能为变量,所以要用到calloc函数为cnt申请空间(代码见后)。2.用cnt[]数组计

2022-02-15 23:57:52 183

原创 两种快速排序的总结

两种快速排序的总结

2022-02-13 17:56:42 404

空空如也

空空如也

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

TA关注的人

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