- 博客(14)
- 收藏
- 关注
原创 2020牛客暑期多校训练营(第五场)
A Portal [B. Graph]C Easy D Drop VoicingE Bogo Sort [F DPS]G Greetings Souvenir H IntervalI Hard Math Problem J Cone walker K Git Merge
2020-07-30 20:06:40 238
原创 【模板】单源最短路 Floyd + dijkstra + spfa
dijkstra 不能用来求最长路floyd 和 dijkstra 都不可以存在负环Floyddijkstraspfa
2020-07-30 19:33:23 312
原创 2020牛客暑期多校训练营(第四场)
A Ancient DistanceB Basic Gcd ProblemC Count New StringD Dividing StringsE Eliminate++ F Finding the Order G Geometry Challenge H Harder Gcd ProblemI Investigating LegionsJ Jumping on the Graph
2020-07-29 21:33:10 187
原创 P3804 【模板】后缀自动机 (SAM) / P6139 【模板】广义后缀自动机(广义 SAM)
入门博客 后缀自动机 (SAM)sam线性解决:在另一个字符串中搜索一个字符串的所有出现位置。计算给定的字符串中有多少个不同的子串后缀自动机 (suffix automaton, SAM) 是用于处理单个字符串的子串问题的强力工具。而广义后缀自动机 (General Suffix Automaton) 则是将后缀自动机整合到字典树中来解决对于多个字符串的子串问题题目P3804 【模板】后缀自动机 (SAM)P6139 【模板】广义后缀自动机(广义 SAM)代码#include <
2020-07-29 16:02:09 323
原创 2020牛客暑期多校训练营(第一场)
A. B-Suffix ArrayB Infinite Tree C Domino D Quadratic Form E Counting Spanning Trees F Infinite String Comparision G BaXianGuoHai, GeXianShenTongH Minimum-cost FlowI. 1 or 2拆边拆点,最后进行边的端点与点的匹配建图原理见下面这篇博客↓据说是原题来着:HDUOJ 3551 Hard Problem#includ
2020-07-28 22:25:41 278
原创 2020牛客暑期多校训练营(第三场)
A. Clam and FishB. Classical String ProblemC. Operation Love识别左右手方法1:将旋转的图形掰正几个知识点:直线的斜率可以通过 c++函数 atan2(Δy,Δx)atan2(\Delta y,\Delta x)atan2(Δy,Δx) 求出,其返回的是弧度,即当斜率为90°时atan2(90°)=1.57atan2(90°)=1.57atan2(90°)=1.57c++的 sin(x)\sin(x)sin(x) cos(x
2020-07-27 21:43:57 331
原创 2020牛客暑期多校训练营(第二场)
A All with Pairs B. BoundaryC. Cover the Tree#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int n, m, k;vector<int> v;vector<int> e[N];void dfs(int u, int fa) { if (e[u].size() == 1) v.push_back(u);
2020-07-27 11:47:57 280 1
原创 【模板】 二次剩余
求解x2=nmod px^2=n \mod px2=nmodp以及解一元二次方程#include <bits/stdc++.h>using namespace std;namespace QuadraticResidue { typedef long long ll; typedef pair<ll, ll> pll; ll qpow(ll a, ll b, ll m) { ll res = 1; a %=
2020-07-21 22:16:18 270
原创 宁波市多校训练(五)
龙珠#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int n, Q;string op;int fa[N], sz[N], cnt[N];int find(int x) { if (x != fa[x]) { int f = fa[x]; fa[x] = find(fa[x]); //带权并查集 cnt[x] += cn
2020-07-16 11:38:49 201 1
原创 【模板】最小生成树 · Kruskal + Prim
Kruskal 和 Prim 都可以有负边和负环,但是 Prim 在稠密图中比 Kruskal 优,在稀疏图中比 Kruskal 劣KruskalPrim#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int n, m, K;namespace Prim { //最小生成树...
2020-07-11 17:08:31 206
原创 【模板】带花树
学习博客[转载]无向图匹配的带花树算法 那些年我用带花树做过的题目:拆点 + 带花树 NIT21124 · 礼物分配问题(Hard Version)带花树板子#include <bits/stdc++.h>using namespace std;const int N = 300 + 10;int n, m;inline int read() { register int x = 0, t = 1; register char ch = getch
2020-07-08 22:12:06 307
原创 短学期综合训练(1)
题目:n个数都不在自己位置上的个数 (n≤103n\le10^3n≤103)题解:答案来源 - 百度知道公式 f(n)=n!(12!−13!+14!+..+(−1)nn!)f(n)=n!(\cfrac{1}{2!}-\cfrac{1}{3!}+\cfrac{1}{4!}+..+\cfrac{(-1)^n}{n!})f(n)=n!(2!1−3!1+4!1+..+n!(−1)n)java写法import java.math.BigInteger;import java.util.Scann
2020-07-02 14:21:25 365
原创 【模板】线段树板子
【洛谷日报#209】线段树分治总结线段树分治是用线段树的分治性维护时间区间,它可以支持撤销操作、或者说维护了一个操作影响的时间区间那些年我用线段树做过的题目:查区间第k小求区间最大值、和给一段区间的数×k\times k×k、给一段区间的数+k+k+k - P2023 [AHOI2009]维护序列 · 线段树统计区间内不同的数的个数 - P1972 [SDOI2009]HH的项链·...
2020-07-01 20:52:23 312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人