算法模板
文章平均质量分 91
板子
Ego12138
这个作者很懒,什么都没留下…
展开
-
你一定要会的埃式筛法和欧式筛法求质数
大一时学过的算法,两年之后忘的一干二净,看了网上很多文章终于又弄懂了,尽量用通俗的说法说明白,避免再忘。原题链接题目描述给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。示例 1:示例输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0解法一:朴素算法顾名思义,地球人都能想到的算法。从2开始遍历到n,每个数都判断一下是不是质数,是的话cnt+1,最后原创 2022-05-28 17:32:46 · 937 阅读 · 0 评论 -
KMP算法模板
#include <bits/stdc++.h>using namespace std;char s[100], t[100];int next[100];void getNext(int next[], char t[]){ int j = 0, k = -1; next[0] = -1; while(j < strlen(t) - 1) { if(k == -1 || t[j] == t[k]) {原创 2020-08-06 15:08:39 · 5786 阅读 · 0 评论 -
最小生成树数模板(kruscal算法和prime算法)
kruscal算法#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,m,tot=0,k=0;//n端点总数,m边数,tot记录最终答案,k已经连接了多少边 int fat[200010];//记录集体老大 struct node{ int from,to,dis;//结构体储存边 }edge[200010];bool cmp(const nod原创 2020-10-08 16:51:55 · 5855 阅读 · 0 评论 -
数据结构-----串相关操作
#include <bits/stdc++.h>using namespace std;//串的定长顺序储存(0号位置存字符串的长度)typedef unsigned char SString[101];//串联接void Concat(SString &t, SString a, SString b){ if(a[0]+ b[0] <= 100) { int i; for(i = 1; i <= a[0]; i原创 2020-12-15 20:16:41 · 5784 阅读 · 0 评论 -
数据结构-----矩阵和广义表相关操作
#include <bits/stdc++.h>using namespace std;//矩阵的三元组顺序表typedef struct{ int i, j, e;}Triple;typedef struct{ Triple a[105]; int mu, nu, tu;}TSMatrix;//矩阵的转置void TSMatrix_reverse(TSMatrix &s, TSMatrix t){ s.mu = t.nu, s.原创 2020-12-16 16:48:36 · 5780 阅读 · 0 评论 -
数据结构-----排序相关操作
#include <bits/stdc++.h>using namespace std;//直接插入排序void insert_sort(int a[], int n){ for(int i = 2; i <= n; i++) { if(a[i] < a[i - 1]) { a[0] = a[i]; int j; for(j = i - 1; a[0] &原创 2020-12-08 16:00:45 · 5747 阅读 · 0 评论 -
数据结构-----线性表相关操作
#include <bits/stdc++.h>using namespace std;//静态顺序表typedef struct{ int a[100]; int length;}L1;//动态顺序表typedef struct{ int *a; int length; int size;}L2;//动态顺序表初始化void L2_init(L2* L){ L->a = (int *)malloc(100 *原创 2020-12-14 20:06:30 · 5757 阅读 · 0 评论 -
数据结构-----栈和队列相关操作
#include <bits/stdc++.h>using namespace std;//栈typedef struct{ int *base; int *top; int stacksize;}Stack;//初始化栈void stack_init(Stack &s){ s.base = (int *)malloc(sizeof(int)); if(!s.base) exit(-1); s.top = s.原创 2020-12-15 18:44:47 · 5792 阅读 · 0 评论 -
数据结构-----树的相关操作
#include <bits/stdc++.h>using namespace std;//二叉树二叉链表存储typedef struct BiTNode{ char data; struct BiTNode *lchild, *rchild;}BiTNode, *BiTree;//创建二叉树void create_BiTree(BiTree &T){ char ch; cin >> ch; if(ch == ' '原创 2020-12-16 19:00:07 · 5782 阅读 · 0 评论 -
开灯问题模板
例题POJ 1753POJ 2965模板#include <iostream>using namespace std;char mp[5][5];int minn = 0x7f7f7f7f;bool check(){ //判断是否全开或全关}void turn(int x, int y){ //翻转}void change(int x, int y){ //翻转}void dfs(int x, int y, int step){ i原创 2020-06-20 13:26:20 · 5817 阅读 · 0 评论 -
单链表相关操作
创建空链表头插法尾插法求链表长度删除链表中指定位置结点在链表中指定位置插入结点链表逆置(原地逆置)打印链表#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef struct node{ int data; struct node *next;}Node, *LinkList;///创建空链表void CreatList(LinkList *li.原创 2020-09-25 08:55:48 · 5742 阅读 · 0 评论