- 博客(8)
- 收藏
- 关注
原创 数据结构(1):栈和队列(Stack&Queue)
一.栈的基本概念 栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。 栈顶(Top):线性表允许进行插入删除的那一端。栈底(Bottom):固定的,不允许进行插入和删除的另一端。空栈:不含任何元素的空表。 栈又称为后进先出的线性表 二.栈的操作 ......
2022-07-30 23:25:36
153
原创 居中杨辉三角
#include <bits/stdc++.h> using namespace std; int n; int a[100][100]; int main() { cin >> n; a[1][1] = 1; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { if (j == 1 || j == i) a[i][j] = 1; else a[i][j] = a[i - 1].
2021-12-14 16:44:36
2007
原创 最短路径算法
一:弗洛伊德 局限性 不能存在负环,不然答案就是负无穷 动态转移方程:g[i][j] = min(g[i][j], g[i][k] + g[k][j]);//g为中间点 #include <iostream> #include <cmath> #include <cstring> using namespace std; const int N = 101; int g[N][N]; void Floyd(int n) { for (int k = 1; ..
2021-10-17 19:57:55
142
原创 树状数组模板
树状数组其实和线段树是一个东西只不过线段树时间复杂度会快一点 作用都是:单点修改和区间查询 线段树传送门 例题:P3374 【模板】树状数组 1 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上xx 求出某区间每一个数的和 零:定义 #include <bits/stdc++.h> using namespace std; int n, m, tree[500005]; 一:求lowbit inline int lowbit(signed.
2021-10-16 18:44:09
77
原创 快速幂板子
x位底数,k为指数 const int mod = 1e9 + 7; long long ksm(int x, int k) { int sum = 1; for (;k;k>>=1, x = x * x % mod) if (k & 1) sum = sum * x % mod; return sum; } const int maxn = 1e9 + 7; long long ksm(int x, int k) { long long sum = 1;
2021-10-16 18:36:25
76
原创 线段树模板
线段树的作用 快速单点修改和区间查询 典型例题 已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上kk。 求出某区间每一个数的和。 第一行包含两个整数n, mn,m,分别表示该数列数字的个数和操作的总个数。 第二行包含nn个用空格分隔的整数,其中第ii个数字表示数列第ii项的初始值。 接下来mm行每行包含33或44个整数,表示一个操作,具体如下: 1 x y k:将区间[x, y][x,y]内每个数加上kk。 2 x y:输出区间[x, ...
2021-10-13 22:31:58
82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人