- 博客(8)
- 收藏
- 关注
原创 基础算法
基础算法排序1.快速排序2.归并排序二分高精度前缀差分1.前缀2.差分双指针离散化区间合并 排序 1.快速排序 2.归并排序 二分 高精度 前缀差分 1.前缀 2.差分 双指针 离散化 区间合并
2021-04-09 18:00:32 66
原创 03-搜索与图论
图的存储 树与图的遍历:拓扑排序 最短路 最小生成树 二分图:染色法、匈牙利算法 1.图的存储 数组加静态单链表 // 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表的头结点 int h[N], e[N], ne[N], idx; // 添加一条边a->b void add(int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ; } // 初始化 idx = 0; memset(h, -1, s.
2020-08-09 09:55:14 110
原创 02-数据结构
数据结构 —— 代码模板 链表与邻接表:树与图的存储 栈与队列:单调队列、单调栈 kmp Trie 并查集 堆 Hash表 C++ STL使用技巧 1.静态单链表 数组模拟单链表(速度较new方式快)—— 可以充当邻接表存储图和树。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 10
2020-08-06 20:39:02 138
原创 最短路模板
1. spfa(可检测负环) #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; const int maxn = 100050; int INF = 0x3f; vector<pll> g[maxn]; ll dis[maxn]; bool vis[maxn]; queue<ll> q; ll n, m, s; //动态规划实
2020-07-06 09:00:26 112
原创 线段树
#include<iostream> using namespace std; typedef long long ll; const int maxn = 100000+10; struct node { ll sum,lazy; }; int n,m; int a[maxn]; node t[4*maxn]; void build(int x,int l,int r){ if (l==r) { t[x].sum=a[l]; return; } int mid=(l+r
2020-06-28 21:16:12 83
原创 N皇后问题
HDU 2553 N皇后 1.题目描述 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。 你的任务是,对于给定的N,求出有多少种合法的放置方法。 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列, 也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,
2020-06-20 17:17:30 402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人