模板总结
文章平均质量分 69
LZH0217
这个作者很懒,什么都没留下…
展开
-
背包问题整理
动态规划中很经典的一类问题就是背包问题……01背包问题描述:有n个物品,每个物品体积为v[i],价值为w[i],每个物品只能选一次,现有一个背包体积大小为V,问如何选择物品使得装入背包里的价值总和最大。分析:定义状态f[i][j]为前i个物品装j体积大小能得到的最大价值。int f[n][V];for (int i = 1; i <= n; ++i) { for (int j = 1; j <= V; ++j) { if (v[i] > j) { f[i][j] =原创 2021-03-09 15:45:59 · 222 阅读 · 0 评论 -
求欧拉函数值
欧拉函数[SDOI2008]仪仗队题目链接const int N = 100000 + 10;int phi[N];int prime[N];bool vis[N];//即可以求出素数,还可以求出欧拉函数值void Euler() { int cnt = 0; phi[1] = 1; for (int i = 2; i < N; i++) { if (vis[i] == false) { prime[cnt++] = i;原创 2020-10-06 22:28:23 · 968 阅读 · 1 评论 -
马拉车算法求最长回文子串(模板)
Manacher 算法模板时间复杂度:O(N)O(N)O(N) ,由于 Manacher 算法只有在遇到还未匹配的位置时才进行匹配,已经匹配过的位置不再匹配,因此对于字符串 S 的每一个位置,都只进行一次匹配,算法的复杂度为 O(N)O(N)O(N) 。空间复杂度:O(N)O(N)O(N) 。五分钟学算法教程老司机开车,教会女朋友什么是「马拉车算法」codeclass Manacher1 {public: static string longestPalindrome(strin原创 2020-10-02 17:12:16 · 137 阅读 · 0 评论 -
P3373 【模板】线段树 2(区间乘+区间加)
P3373 【模板】线段树 2题目链接既有区间乘又有区间加,那么乘和加的顺序很关键先乘后加:a∗b+ca*b+ca∗b+c ,自然没什么影响先加后乘:(a+b)∗c=a∗c+b∗c(a+b)*c=a*c+b*c(a+b)∗c=a∗c+b∗c ,如果我们不进行处理,仅仅单独做乘和加的标记,就会变得混乱我们只需要对加法标记乘上 ccc 就行,也就是把这个式子的括号展开都变成加。code#include <iostream>#include <algorithm>#i原创 2020-09-29 16:44:44 · 120 阅读 · 0 评论 -
P3387 【模板】缩点(Tarjan缩点,拓扑序上dp)模板
P3387 【模板】缩点题目链接#include <iostream>#include <algorithm>#include <vector>#include <cstdio>#include <stack>#include <queue>#define sc(x) scanf("%d", &(x))#define sca(x, y) scanf("%d%d", &(x), &(y))#d原创 2020-09-25 16:03:51 · 187 阅读 · 0 评论 -
Min_25 筛法求素数和(模板)
Min_25 筛法求素数和大佬同学的模板求1~N的素数和,可以求 1e101e101e10 范围内的。#include <bits/stdc++.h>using namespace std;using ll = long long;const int N = 1000000 + 10;int prime[N], id1[N], id2[N], flag[N], ncnt, m;ll g[N], sum[N], a[N], T;ll n;int ID(ll x) {转载 2020-09-24 21:40:18 · 517 阅读 · 0 评论 -
Til the Cows Come Home POJ - 2387(Dijkstra模板 优先队列优化)
Til the Cows Come HomePOJ - 2387#include <cstdio>#include <vector>#include <queue>#include <cstring>using namespace std;typedef pair<int, int> pii;const int INF = 0x3f3f3f3f;const int N = 1000 + 5;struct node {原创 2020-09-23 21:33:07 · 130 阅读 · 0 评论 -
P3385 【模板】负环 (spfa模板,判断负环)
P3385 【模板】负环题目链接code#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <string>#include <vector>#include <stack>#include <queue>using namespace std;const int N = 3原创 2020-09-17 19:39:48 · 124 阅读 · 0 评论 -
高精度乘高精度(模板、压位)
ADV-353 高精度乘法蓝桥杯算法提高http://lx.lanqiao.cn/problemset.page?code=ADV-&userid=301004code#include <cstdio>#include <cstring>using namespace std;const int N = 10005;char str_a[N], str_b[N];int a[N], b[N], c[N << 1];int main() {原创 2020-09-16 09:35:58 · 148 阅读 · 0 评论 -
A Simple Problem with Integers POJ - 3468(线段树模板,区间修改,区间查询)
A Simple Problem with IntegersPOJ - 3468code#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <vector>#include <queue>using namespace std;typedef long long ll;const int N = 10原创 2020-09-15 12:10:04 · 89 阅读 · 0 评论 -
POJ-2352 Stars(树状数组模板)
StarsPOJ-2352树状数组下标是从1开始。#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <vector>#include <queue>using namespace std;const int N = 15005, M = 32005, INF = 0x3f3f3f3f;int n;原创 2020-09-14 21:06:45 · 144 阅读 · 0 评论 -
HDU-1698 Just a Hook(线段树模板,懒标记区间修改)
HDU-1698 Just a Hook/* * HDU-1698 Just a Hook * http://acm.hdu.edu.cn/showproblem.php?pid=1698 */#include <iostream>#include <algorithm>#include <cstring>#include <vector>#include <queue>using namespace std;const原创 2020-09-14 20:02:49 · 88 阅读 · 0 评论 -
I Hate It POJ - 1754(线段树 模板)
I Hate Ithttp://acm.hdu.edu.cn/showproblem.php?pid=1754线段树区间最大值,单点修改,区间查询。code#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int N = 200005;int tree[N << 2];#define ls(x) (x <<原创 2020-09-13 20:59:00 · 110 阅读 · 0 评论 -
手写小根堆
小根堆int heap[1000], tot = 0;void insert_heap(int x) { tot++; heap[tot] = x; int i = tot; int j = i / 2; while ((j > 0) && heap[j] > heap[i]) { swap(heap[j], heap[i]); i = j; j = i / 2; }}in原创 2020-09-13 17:47:22 · 273 阅读 · 1 评论 -
敌兵布阵 HDU-1166(线段树 单点修改 区间查询)
/** 敌兵布阵 HDU-1166 线段树-单点修改-区间查询-敌兵布阵HDU-1166 */#include <iostream>#include <string>#define N 50005using namespace std;int n;int sum[N << 2];void push_up(int root) { sum[root] = sum[root << 1] + sum[root << 1 |原创 2020-09-13 10:04:07 · 125 阅读 · 0 评论 -
A Simple Problem with Integers POJ - 3468(线段树 区间修改 区间查询)
//A Simple Problem with Integers POJ - 3468//线段树-区间修改-区间查询#include <cstdio>#define N 100010typedef long long ll;ll sum[N << 2];ll lazy[N << 2];ll x;void push_up(int root) { sum[root] = sum[root << 1] + sum[root <<原创 2020-09-13 10:02:37 · 93 阅读 · 0 评论 -
小A盗墓 upc(线段树)
/*upc问题 E: 小A盗墓时间限制: 5 Sec 内存限制: 128 MB题目描述小A终于通过了保安的考验,来到了古墓门前,古墓门前有n根柱子,第i根柱子的高度是整数。古墓的门上会弹出一些暗号,机智小A猜到这个暗号表示询问第l到第r根柱子的高度在升序排序后是否构成一段连续且上升的序列。并且这些柱子的高度还可能在弹出暗号的过程中出现变化。现在小A需要回答出每个暗号的答案输入第一行两个整数,表示柱子的个数n以及操作的个数m。第二行n个整数,第i个整数表示第i根柱子的高度。接下来原创 2020-09-13 10:01:03 · 87 阅读 · 0 评论 -
矩阵快速幂总结
矩阵快速幂整理总结题目POJ 3070 Fibonacci([链接](http://poj.org/problem?id=3070))题目POJ 3070 Fibonacci(链接)DescriptionIn the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For exa...原创 2020-02-06 11:49:58 · 164 阅读 · 0 评论 -
P3376 【模板】网络最大流(Dinic模板)
code#include <bits/stdc++.h>using namespace std;typedef long long ll;const int INF = 0x3f3f3f3f;const ll INFF = 0x3f3f3f3f3f3f3f3f;const ll MOD = 1e9 + 7;const int M = 1e6 + 5;const int N = 1e5 + 5;int n, m, s, t;// Dinic 每次寻找最短的增广路,并沿着..原创 2020-09-11 11:25:07 · 127 阅读 · 0 评论 -
Markdown数学符号
数学符号符号代码描述∑\sum∑$\sum$求和×\times×$\times$乘号±\pm±$\pm$正负号÷\div÷$\div$除号∣\mid∣$\mid$竖线⋅\cdot⋅$\cdot$点∘\circ∘$\circ$圈∗\ast∗$\ast$星号≤\leq≤$\leq$小于等于≥\geq≥$\geq$大于等于≠\neq=$\neq$不等于≠\not==$\原创 2020-05-12 19:58:13 · 545 阅读 · 0 评论 -
求逆元
求逆元乘法逆元扩展欧几里得求逆元费马小定理/欧拉定理乘法逆元如果 a⋅x≡1(mod p)a·x≡1(mod\ p)a⋅x≡1(mod p) 且 gcd(a,p)=1gcd(a,p)=1gcd(a,p)=1(aaa,ppp互质),那么 xxx 为模 ppp 意义下 aaa 的乘法逆元。一个数有逆元的充分必要条件是 gcd(a,p)=1gcd(a,p)=1gcd(a,p)=...原创 2020-03-21 10:14:14 · 1334 阅读 · 0 评论 -
贪心、动态规划、排列组合文章链接
图解啥是贪心算法?一文学会动态规划解题技巧一文学会排列组合一文学会递归解题原创 2020-03-21 22:34:57 · 216 阅读 · 0 评论 -
最大子段和问题(暴力、分治、贪心、动态规划)
最大子段和问题暴力前缀和预处理分治法(不会????)贪心动态规划题目整理LeetCode53. 最大子序和https://leetcode-cn.com/problems/maximum-subarray/LeetCode官方题解:https://leetcode-cn.com/problems/maximum-subarray/solution/zui-da-zi...原创 2020-03-09 12:28:51 · 653 阅读 · 0 评论 -
KMP总结
KMP总结先来大佬的链接,很详细:https://www.cnblogs.com/SYCstudio/p/7194315.htmlhttps://blog.csdn.net/v_JULY_v/article/details/7041827下面的写法是从下标0开始。const int maxn = 1e6 + 10;int Next[maxn];char s[maxn], p[ma...原创 2020-03-09 08:46:38 · 169 阅读 · 0 评论 -
用KMP中的next数组求最小循环节
next数组求最小循环节KMP-next数组最小循环节题目1KMP-next数组最小循环节题目1题目描述小七是一个很可爱很努力的女孩子。她对大数的运算非常感兴趣,在学习了几天之后,终于精通了大数的加减乘除。但是自从她学会了 JAVA ,她觉得大数实在是太简单太无聊了,因为运用 JAVA 中 BigInteger 大整数类,可以轻松实现大数的加减乘除。某一天她突然发现,很多大数的题目的数据...原创 2020-03-08 21:48:27 · 359 阅读 · 0 评论 -
见过的神奇的函数(随时更新吧)
神奇的函数判断是否为2的整数幂判断是否为2的整数幂bool ispow2(int x) { return (n & (n-1)) == 0;}将2的整数幂转换成二进制思考。原创 2020-02-15 10:36:26 · 170 阅读 · 0 评论 -
线性筛素数模板
线性筛 模板const int maxn = 1e6 + 6;ll p[maxn];bool book[maxn];int cnt = 0;void prime(int nn) { cnt = 0; for (int i = 2; i <= nn; i++) { if (!book[i]) { p[cnt++] = i;...原创 2020-02-09 14:45:53 · 94 阅读 · 0 评论 -
求 A^B mod P 的值
求 A^B mod P 的值快速乘+快速幂快速乘+快速幂#include <bits/stdc++.h>using namespace std;typedef long long ll;ll quick_mul(ll a, ll b, ll p) //快速乘 计算 (a*b)%p{ ll res = 0; //加法初始化 while (b > 0) { i...原创 2020-01-01 13:10:11 · 1169 阅读 · 0 评论 -
二分图最大匹配 匈牙利算法模板
//二分图最大匹配 匈牙利算法#include <cstdio>using namespace std;const int N = 510;int e[N][N];int match[N];//记录配对关系 比如u->v记作match[v]=uint book[N];int n, m;bool dfs(int u) { for (int i = 1; ...原创 2019-11-29 16:45:08 · 185 阅读 · 0 评论 -
网络流模板
//Dinicstruct edge { int to, cap, rev; edge(int to, int cap, int rev) : to(to), cap(cap), rev(rev) {}};vector<edge> G[MAX_V];int level[MAX_V];int iter[MAX_V]; //当前弧优化void add...原创 2019-11-29 16:07:30 · 109 阅读 · 0 评论 -
无向图的割点割边和双连通分量
无向图的割点、割边Tarjan算法求无向图的割点//啊哈算法 图的割点#include <cstdio>#include <algorithm>#include <cstring>using namespace std;typedef long long ll;const int N = 2e4 + 10;int n, m, root;b...原创 2019-11-08 21:07:50 · 511 阅读 · 0 评论 -
KMP
常用写法:下标从 0 开始//未优化的Next数组求法//用未优化的Next数组可以求多个模式串p在文本串s中的位置void Get_Next() { int len_p = strlen(p); Next[0] = -1; int k = -1; int j = 0; while (j < len_p) { if (k...原创 2019-11-02 19:14:39 · 86 阅读 · 0 评论