十七

约数个数和约数之和

约数个数#include<iostream>#include<unordered_map>const int MOD=1e9+7;using namespace std;int n;int main(){ unordered_map<int,int>mp;

十七 十七 Published on 2023-07-04

Dijkstra求最短路径

Dijkstra求最短路径原题链接代码#include<iostream>#include<cstring>using namespace std;const int N=510,M=1e5+10,INF=0x3f3f3f3f;int n,m,g[N][N],dist[N];

十七 十七 Published on 2022-01-24

Floyd求最短路径

Floyd求最短路径原题链接#include<iostream>#include<cstring>using namespace std;const int N=210,M=20010,INF=0x3f3f3f3f;int g[N][N];int n,m,Q;int main

十七 十七 Published on 2021-09-14

搜索与图论

树与图的存储树是一种特殊的图,与图的存储方式相同。对于无向图中的边ab,存储两条有向边a->b, b->a。因此我们可以只考虑有向图的存储。(1) 邻接矩阵:g[a][b] 存储边a->b(2) 邻接表:可以用数组来存储邻接表,h[n]表示第n个顶点的头节点,e[n]表示第n条边的

十七 十七 Published on 2021-03-16

KMP字符串

给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串P在模式串S中多次作为子串出现。求出模板串P在模式串S中所有出现的位置的起始下标。输入格式第一行输入整数N,表示字符串P的长度。第二行输入字符串P。第三行输入整数M,表示字符串S的长度。第四行输入字符串S。输出

十七 十七 Published on 2021-03-11

二分法

整数二分模板bool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:int bsearch_1(int l, int r){ while (l < r) {

十七 十七 Published on 2021-01-26

归并排序

模板void merge_sort(int q[], int l, int r){ if (l >= r) return; int mid = l + r >> 1; merge_sort(q, l, mid); merge_sort(q, mid + 1,

十七 十七 Published on 2021-01-25

快速排序

模板void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) {

十七 十七 Published on 2021-01-25