
ACM-常用模板
ACM-常用模板
nefu-ljw
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【ACM模板】判断二分图+二分图最大匹配
POJ 2492 A Bug’s Life判断无向图是否为二分图,注意图可能不连通。#include <iostream>#include <cstdio>#include <cstring>#include <vector>using namespace std;const int N=1e4+10;vector<int> g[N];int color[N];bool dfs(int u,int now_color) // 当原创 2021-07-13 18:50:38 · 363 阅读 · 0 评论 -
【ACM模板】线段树
P3372 【模板】线段树 1区间修改(加法),区间查询(和)。#include <bits/stdc++.h>#define lson i<<1#define rson i<<1|1using namespace std;typedef long long ll;const int N=1e5+10;ll a[N];struct node{ int l,r; ll lazy; // 懒标记(存每个结点需要加上的和,如果为0则为无标记)原创 2021-05-01 12:55:39 · 277 阅读 · 0 评论 -
【ACM图论模板】2-SAT问题
前置知识:Tarjan算法 (详见此文)参考文章:1. 博客园 2-SAT 知识小结2. 洛谷 2-SAT学习笔记总结:我们将一个元素拆成两个点表示bool元素的两种情况,有向边表示若起点成立,则终点一定成立。当拆点建图后,如果一个元素拆出的两个点u,v。存在有向图上的路径u->v,则代表点u可以推出点v,点u非法,则点v合法。有向无环图的情况下,合法点的拓扑序比非法点大。Tarjan后,同一元素拆成的两个点中强连通分量编号小的点是合法点。如果一个元素拆成的两原创 2020-10-01 17:37:48 · 396 阅读 · 0 评论 -
【ACM图论模板】强连通分量,缩点(Tarjan或Kosaraju)
先科普一下简写,DAG指的是有向连通图,SCC指的是强连通分量。例题:洛谷 P3387 【模板】缩点思路就是用Tarjan算法或者Kosaraju算法求强连通分量,然后把每个强连通分量变成一个点,重新建图,图就变成了DAG,用拓扑排序进行dp即可。原创 2020-09-24 20:10:11 · 513 阅读 · 0 评论 -
【ACM图论模板】最大流+费用流(dinic算法)
友情链接:【图论】网络流问题——最大流入门(Dinic算法)【图论】最小费用最大流(网络流进阶)一、最大流:dinic算法最终优化模板测试OJ:LOJ #101. 最大流 27~30 ms洛谷 P3376 【模板】网络最大流 65~100 ms建议点数和边数可以开大一点,开到1e5,防止建图的时候没算好边和点数而导致TLE。#include <bits/stdc++.h>using namespace std;typedef long long ll;原创 2020-09-22 20:33:26 · 742 阅读 · 1 评论 -
ACM卡常优化模板(C++/Java)
一、C++部分1.编译优化#pragma GCC optimize(2)#pragma GCC optimize(3)#pragma GCC optimize("Ofast")#pragma GCC optimize("inline")#pragma GCC optimize("-fgcse")#pragma GCC optimize("-fgcse-lm")#pragma GCC optimize("-fipa-sra")#pragma GCC optimize("-ftree-pre"原创 2020-07-20 10:26:02 · 891 阅读 · 0 评论