ACM_模板大全
文章平均质量分 69
准备现场赛的时候,从这里面挑选模板打印
I_have_a_world
这个作者很懒,什么都没留下…
展开
-
Escape HDU - 3605 (状态压缩+ISPA/Dinic+建图)
传送门题意:给定n个人,m个星球,每个人只能到特定的星球,每个星球只能容纳 ci 个人。求是否所有人都可以被容纳。n<=1e5,m<=10。 先输入n,m。然后n*m矩阵,aij表示第 i 个人是否可以到 j 星球。 最后一行 m个数字表示ci。 输出"YES" or “NO"。题解:参考大佬博客HDU - 3605 Escape 状态压缩最大流1.直接建图s->人->星球->t 一定会爆2.考虑状态压缩:每个人可以到达的星球的情况为一个状态,最多.原创 2021-05-06 15:52:39 · 122 阅读 · 0 评论 -
Power Network POJ - 1459 (网络流+建图+读题+scanf同时输入字符和数字)
传送门题意:没读懂,大意好像是n个点,m条有向边,np条从源点汇入,nc条汇出到汇点。然后求最大流。这个专题最后两个题了,没得之前有耐心了,读题真难受,原来没有读题的压力一题可以这么快emm。题解参考博客POJ - 1459 Power Network 最大流模版,有点意思的输入题解:读懂题->建图->Dinic模板代码:scanf同时输入字符和数字#include <algorithm>#include <cstdio>#include原创 2021-05-13 08:57:11 · 148 阅读 · 0 评论 -
Control HDU - 4289 (最小割+拆点+ISAP)
传送门题意:给定n个点,m条无向边(边上的两个点之间可以通行),问最少去掉哪几个点会使s,t之间不连通。干掉哪几个点,会使敌人在s的武器送不到t。干掉t也表示送不到。 2<=N<=200,1<=m<=2e4 1<=s,t<=N(没说s是否可以等于t。可以的话干掉t即可)题解:就是个拆点+建图+ISAP模板emm(ps:之前某博主说这题卡ISAP,Dinic可以过,我差点信了emm。请相信ISAP较之Dinic的优越性!!)代码:#include <algorithm>原创 2021-05-04 16:23:18 · 90 阅读 · 0 评论 -
Going Home POJ - 2195 (费用流的使用场景+费用流模板题+建图)
传送门题意:给定一个n*m的矩阵,其中有相等数量的人和房子,每走一个格子花费¥1,最终每个人进入一个房子,问最少花费多少。n,m,人/房子的数量<=100 每个格子上可以站任意个人,包括房子(但是只能进入一个人)。 输入: 多组;n m;n*m的矩阵——'.'表示空格,'H'表示房子,'m'表示人 输出:一个数,表示费用题解:费用流。开始认为可以是最小割,想了想还是不对:代码:#include <algorithm>#include <原创 2021-05-09 09:23:48 · 156 阅读 · 0 评论 -
Food HDU - 4292 (拆点+Dinic)
传送门题意n个人,F种食物,D种饮料,每种食物,饮料的数量都已知,同时还知道哪个人喜欢吃/喝那些食物/饮料。最多多少人能够有吃有喝。1<=n,F,D<=200。 输入:多组输入n,F,D F个整数表示食物i的数量 D个整数表示饮料i的数量 n*F矩阵,aij为'Y','D'分别表示第i个人喜欢/不喜欢食物j n*D矩阵,bij为'Y','D'分别表示第i个人喜欢/不喜欢饮料j输出:一行一个整数表示人数题解网络流,建图难。s->食物->人_in->人_out->饮料->原创 2021-05-10 20:27:32 · 95 阅读 · 0 评论 -
计算几何学习随笔
一、模板(kuangbin):https://vjudge.net/problem/HDU-3982circle::convex(Line u,polygon &po)//切割凸多边形左侧,注意直线方向自己分析了以下·前提条件,凸多边形也是逆时针方向的!!!1.切割左边(逆时针)就直线为向上方向,否则为向下方向(看y即可)。如果y相等,那就逆时针向右,顺时针向左。***自己画图,很简单的。(e-s)^(p[i]-x)>0即为逆时针。(因为叉积^为正才能满足逆时针切割)原创 2021-03-17 14:06:31 · 99 阅读 · 0 评论 -
Dining POJ - 3281 (建图+最大流模板+Dinic)
传送门题意:n(<=100)头牛,F(<=100)种食物,D(<=100)种饮料。每头牛有想吃的食物和想喝的饮料,但是每头牛最多只能吃一种,喝也最多能喝一种,而且每种吃、喝的只能被一头牛吃、喝。求最多有多少头牛能够既有吃的又有喝的。题解:难点还是在建图,除此之外Dinic全搞定。自己想了一会,想了个假图。以下图来源:POJ3281 Dining——最大流(Dinic+建图⭐)源点->吃的->牛->牛->喝的->汇点。(我的小脑袋,还是不原创 2021-05-03 14:29:51 · 177 阅读 · 0 评论 -
ACM Computer Factory POJ - 3436 (最大流+建图+Dinic+点权与边权之间的转换)
目录传送门点权转化为边权传送门题意:题意迷得很,最后也是看网友的才看懂。每台计算机有p(<=10)个零件,一个公司有n(<=50)个工厂。每个工厂加工一些半成品,输入(得到)一些指定的零件,最多能够输出指定套(指定的是总输出上限,最多不能输出输入套)指定的文件。n行,第 i 行第一个值是第 i 个工厂的总输出的上限,然后是p个数表示输入的零件,0表示一定不能有该零件,1表示一定要有该零件,2表示无所谓,接着是输出的零件,0表示有该零件,1表示没有。题解:建图(点权转化原创 2021-05-02 21:17:07 · 368 阅读 · 0 评论 -
优先队列注意事项
1.最好永远不要用这种排序方式!!!!struct pii { int dis, i; pii() {} pii(int _dis, int _i) { dis = _dis, i = _i; }} a[maxn];struct cmp { bool operator()(int x, int y) { return a[x].dis > a[y].dis; //小顶堆 }};priority_queue<int, vect原创 2021-04-15 21:22:46 · 101 阅读 · 0 评论 -
Leapin‘ Lizards HDU - 2732 (拆点+网络流模板题+建图)
传送门题意:一个n*m迷宫中,有一些Lizard(????)和柱子,每个柱子最多可以跳x次(0~3),求最多有多少只Lizard可以跳出迷宫。输入T<=25表示样例组数 每组由n ,d(1~20)开始,n表示行数,d表示可以跳的最远的曼哈顿距离(题目貌似没说) 一个n*m矩阵,aij表示珠子可以跳多少次 一个n*m矩阵,bij==‘L'表示这个地方最开始有Lizard输出:最少多少只不能跳出迷宫题解:网络流=建图难。ps:很快写好之后找了一个半小时的BUGe原创 2021-05-11 15:31:37 · 124 阅读 · 0 评论 -
Kakuro Extension HDU - 3338 (毒瘤+MLE+网络流+数独)
传送门先说注意:MLE不止与空间有关,还与时间有关的样子。这里M太大就MLE了emm,还一直不知道错在哪里emm. 尽量使用for而不是memset初始化(说的时限制严格的情况下) 其实不必特别注意,只需要知道MLE问题出现在哪儿即可。题意:n*m的方格。填数——类似数独规则,懂的都懂。n,m<=100 只能填数1~9题解:最大流。s->黑横->白->黑竖->t代码:#include <algorithm>#in原创 2021-05-12 12:07:31 · 152 阅读 · 0 评论 -
Sabotage UVA - 10480 (最小割+求最小割去掉的具体边+ISAP)
传送门题意:给定n个点,m条带权无向边,源点s=1,汇点t=2。去掉一些边之后使s,t不连通,求去掉的这些边(而且还要满足去掉的边权和是所有答案中最小的——最小割)。n<=50,m<=500,边权<=4e7(可能超int) 无重边 有多个答案输出一个,边按两个点的方式输入(不需要按顺序)题解:求最小割去掉的具体的边先正常求最大流(增广路算法EK,Dinic,ISAP等都行)。 最后dfs/bfs最后的残余网络,vis数组分成两块,一块与s相连,一块与t相连,最后边中两点原创 2021-05-04 23:36:13 · 158 阅读 · 0 评论 -
Minimum Cost POJ - 2516 (费用流+EK+模板+分别建图)
传送门题意:n个商店,m个供货商,共k种商品。n个商店需要一定数量的每种商品,m个商店有一定数量的每种商品,m个商店送每一种商品到n个商店都有一定的单价。问是否能供满货,如果能输出最小费用,如果不能,输出-1。n,m,k<=50,数量值都在0~3,费用值都在0~100 输入:多组输入 n,m,k n行,每行k个数,ai,j 表示第 i 个商店需要商品 j 的数量(0~3) m行,每行k个数,ai,j 表示第 i 个供货点有商品j 的数量(0~3) k个n*m矩阵,ci..原创 2021-05-07 21:49:33 · 95 阅读 · 0 评论 -
模板一:图论
目录个人ACM模板总结一、图论(一)链式前向星(二)最短路1.单源最短路1)dijkstra算法2)SPFA2.多源最短路1)Floyd3.传递闭包4.最短路径树1)最短路径树计数2)去掉图中一条边之后最短路径树大小(dis之和)是否有变化5.最短路计数6.分层图最短路7.k短路写在最后(三)最小生成树1.基础算法:1)克鲁斯卡尔:加n-1条边2)prim:加n-1个点(不算第一个点)3)Boruvka算法(结合prim原创 2021-05-27 17:27:09 · 914 阅读 · 0 评论 -
A Plug for UNIX POJ - 1087 (读题的技巧+建图+Dinic+建图标点的技巧)
目录关于读题:关于建图标点:传送门题意:一间房间有n个插座,有m个电器要使用一些插座(有的插座没在n个里面),有k个转换器,每个转换器可以插在相应的插座或者转换器上(插上之后相当于插座变成另一种插座),每个转换器上可以插相应的插头或者转换器(转换器可以当作插头看待)。要求尽可能多的插头能充电,问最少有多少电器充不上点。n,m,k<=100 插座,插头都有不超过24位的字符串表示 n个插座各不一样(题目好像没有明显说) 转换器的种类无穷多 输入:n->n个插座->m->m原创 2021-05-07 17:16:47 · 110 阅读 · 0 评论 -
个人模板总结
目录前言黑科技缺省源暴力的艺术bitset用法合集应用举例(与埃氏筛结合)vector图论最短路dijkstraSPFA(放入队列中的同时vis[s]=1,取出的同时vis[now]=0,更新所有可以更新的,更新的时候放入所有能放入的即vis[x]=0的x)Floyd最短路径树(应用)最短路径树计数模板(最短路径数计数模板题):去掉途中一条边之后最短路径树大小(dis之和)是否有变化暂时就以上两个应用吧,毕竟自己没遇到过最短路计数模板分层图最短路(用分层图的几种情况)用分层图的几种情况例题1:小雨坐地铁题目原创 2021-11-13 13:03:13 · 1091 阅读 · 2 评论 -
ACM基础&黑科技
目录缺省源暴力的艺术前言题目题目1(n层完全二叉树求距离为D的点对数量&暴力枚举点对的LCA)题目2:尺取^异或值为0的区间(记录异或前缀和相同的位置即可)&一种思路:记录相同xx值(比如前缀)的位置(优雅暴力)题目3(cf*2100,与题目4要求完全相反,题目4cf*2200更难):给定n≤5e5n\le 5e5n≤5e5条线段[x,y][x,y][x,y],求有相交部分但一个线段不被另一个线段完全包含的线段对数(两个约束,当一个约束同时满足时,可二分等更复杂度极低的方法处理另一个约束)题原创 2021-11-13 12:39:54 · 729 阅读 · 0 评论 -
数论基础总结
目录前言参考博客专题训练素数筛埃氏筛(拓展性很强)欧拉筛(线性筛)欧拉函数欧拉函数的定义欧拉函数的一些性质欧拉函数模板(单个&线性)欧拉定理扩展欧拉定理欧拉常数(貌似和欧拉函数没多大关系来着??)唯一分解定理应用1:求所有因数的个数应用2:求所有因数之和应用3:求LCM/GCD扩展欧几里得算法模板:拓展欧几里得&拓展欧几里得求逆元洛谷P1516 青蛙的约会(数论同余、扩欧)(现在我们只需要关注ax+by+c=0怎么解得x,y即可!!!)乘法逆元(3种方法)!!!一个数a与模数mod互质的时候原创 2021-11-13 12:08:25 · 1243 阅读 · 0 评论 -
网络流基础知识学习(初级)
目录前言一、网络流基础概念二、网络流中的常见问题(最大流,最小割,费用流)三、最大流:Ford-Fulkerson 增广路算法:该方法通过寻找增广路来更新最大流,有 EK,dinic,SAP,ISAP 主流算法Edmond-Karp 动能算法(EK 算法)矩阵实现模板链式前向星实现模板Dinic算法Dinic模板(应该是最长用到到的,比ISAP慢不了多少)ISAPISAP模板(终于进入正题了?&比Dinic快的板子)& HLPP(Push-Relabel 预流推进算法)四、最小割[UVA16原创 2021-11-12 15:18:02 · 1587 阅读 · 0 评论 -
最小生成树复习&总结
目录前言一、前置知识——并查集模板拓展维护并查集大小:简单的很,在merge的时候操作就ok了按秩优化:虽然没啥用,但最好知道原理二、基础算法1.克鲁斯卡尔:加n-1条边2.prim:加n-1个点(不算第一个点)3.Boruvka算法(结合prim与克鲁斯卡尔)三、最小生成森林四、判断最小生成树的唯一性解决方法1:求非严格次小生成树看是否和最小生成树相等,如果不相等那么就唯一解决方法2:如果在选一个点加进来的时候,有两条及以上的路径可以选择,那么这个最小生成树就就是不唯一的五、瓶颈生成树六、次小生成树(严格原创 2021-11-12 14:19:30 · 1192 阅读 · 0 评论 -
数据结构总结
目录前言线段树前言碎碎念算法基本思想模板(基于区间和修改&区间和查询)模板题区间乘修改+单点查询区间加修改&维护区间最小值二维线段树&区间加&区间最小值&前缀和与差分线段树维护区间GCD&单点修改&区间查询前言acm快退了,把写过的模板总结整理一下。线段树前言碎碎念之前学了一些东西,笔记写的还挺认真,可惜放在了电脑桌面上(基本不可能翻的那种,而且很多还给删了)emm。慢慢总结回来吧,竟然错在了这里:pushdown里面没有更新tag原创 2021-11-12 10:56:37 · 784 阅读 · 0 评论 -
最短路与环学习&总结
目录前言单源最短路dijkstra算法堆优化模板(时间复杂度O(mlogm)O(m\log m)O(mlogm))(找最小的dis以及其下标)SPFA模板(放入队列中的同时vis[s]=1,取出的同时vis[now]=0,更新所有可以更新的,更新的时候放入所有能放入的即vis[x]=0的x)全源最短路Floyd模板(无脑三重循环)三、传递闭包模板四、最短路径树(应用)最短路径树计数模板(最短路计数模板题):去掉途中一条边之后最短路径树大小(dis之和)是否有变化暂时就以上两个应用吧,毕竟自己没遇到过五、最原创 2021-10-22 13:21:58 · 542 阅读 · 0 评论 -
CF-div2-SB-AB题(是我SB,简单题都能被卡)
目录前言题目题目1:求能满足式子∑i=1x(−1)y∗i=a\sum_{i=1}^{x}(-1)^y*i=a∑i=1x(−1)y∗i=a,且yyy为0或1的xxx的最小值。(首先全取y=0y=0y=0满足∑i=1x≥a\sum_{i=1}^x \ge a∑i=1x≥a,然后每次可以-2,-4,...,-2*x。即满足两个条件即可:x∗(x+1)/2≥a,x∗(x+1)/2−a为偶数x*(x+1)/2 \ge a,x*(x+1)/2-a为偶数x∗(x+1)/2≥a,x∗(x+1)/2−a为偶数)前言原创 2021-10-08 12:28:48 · 100 阅读 · 0 评论 -
【树的欧拉序列应用】学习&总结
目录前言前言参考博客:oi-wiki原创 2021-10-06 19:41:55 · 323 阅读 · 0 评论 -
缺省源(没必要为了适应xcpc而用devc++)
/*2021.10.01*/#include <bits/stdc++.h>#define pii pair<int, int>#define x first#define y second#define dbg(x) cout << #x << "===" << x << endl;#define T_void \ template <class T> \ voidT_void原创 2021-10-01 00:26:14 · 319 阅读 · 0 评论 -
STL进阶学习&总结
前言把所有学的知识都总结在那几个大类为主体的博客里面。STL进阶fill(v.begin(),v.end(),val):将v内所有值赋为val,至于复杂度,应该是O(n)的。原创 2021-09-30 14:19:17 · 141 阅读 · 0 评论 -
暴力&DFS&BFS的艺术(学习总结全)
目录前言题目题目1(n层完全二叉树求距离为D的点对数量&暴力枚举点对的LCA)前言所有学过的东西总结在一个博客里面吧。精简!没啥好总结的基础知识,就总结一些类型的题目吧。题目题目1(n层完全二叉树求距离为D的点对数量&暴力枚举点对的LCA)题目链接:E - Distance on Large Perfect Binary Tree 题意:给定一个n层的完全二叉树,求这棵树中距离为D的(i,j)点对数量 。2<=n<=1e6,1<=D<=2e6。原创 2021-09-28 18:49:56 · 296 阅读 · 0 评论 -
莫比乌斯反演&整数分块
目录前言参考资料莫比乌斯反演预备知识:整数分块(感觉就是一个思想)总结莫比乌斯函数μ\muμ(数论函数也可以视作一个数列)总结莫比乌斯反演题目训练前言参考资料peng-ym-莫比乌斯反演莫比乌斯反演预备知识:整数分块(感觉就是一个思想)参考博客:peng-ym-整除分块总结一般形式:∑i=1n[n/i]\sum_{i=1}^{n}[n/i]∑i=1n[n/i]过程:r=n/(n/l),然后不断枚举l,求得r,[l,r]部分的值是一样的,不必遍历,直接得到长度*数。复杂度:由转载 2021-09-17 14:51:49 · 276 阅读 · 0 评论 -
FFT学习&总结(模板:见kuangbin)
目录前言题目题目1(模板题):[cf-gym-首尔icpc-H](https://codeforces.com/gym/102920/problem/H)前言zxy大佬给我讲了讲,冲一波吧。参考博客:【zxy大佬给我讲了一个模板题】题目题目1(模板题):cf-gym-首尔icpc-H题意:y=-1,0,1这条直线上分别有一些点,三条直线上各取一个点,在一条直线上的组合有多少。x维为整数,在[−3e4,3e4][-3e4,3e4][−3e4,3e4]范围内。题解:只看-1,1上原创 2021-09-13 21:49:25 · 182 阅读 · 0 评论 -
后缀自动机学习&总结
目录引入oi-wiki先了解算法(写的又好又全,就是有点难理解)其他通俗博文帮助小白理解(相对小白好理解一点)b站学算法:简单地理解后缀自动机 SAM(理解了很多东西&果然要视频与文献结合)遇到过的一些题目题目1:E. Rescue Niwen!(cf.div2.E.当场价值2750.83个人AC)引入oi-wiki先了解算法(写的又好又全,就是有点难理解)地址:OI Wiki后缀自动机 (SAM)其他通俗博文帮助小白理解(相对小白好理解一点)地址:史上最通俗的后缀自动机详解b站原创 2021-09-05 15:14:39 · 141 阅读 · 0 评论 -
字符串学习&总结(感觉主要是总结模板)
目录前言字符串hash(hash yyds)导读HASH模板(哈希&双哈希)hash应用(hash牛逼克拉斯):::::::::::::::0. 核心操作:求子串哈希值1. 字符串匹配2. 允许k次失配的字符串匹配3. 最长回文子串(hash操作简单,可解决的问题有点多啊!!!nice)4. 最长公共子字符串(m个总长不超过n的非空字符串的最长公共子串)5. 确定字符串中不同子字符串的数量hash实战题目1:E. Compress Words(合并字符串&合并的时候前后缀去重)前言大二原创 2021-08-25 11:42:22 · 2292 阅读 · 0 评论 -
树链剖分学习&总结
树链剖分性质&板子&一些板子题原创 2021-08-16 20:43:38 · 946 阅读 · 0 评论 -
ACM个人模板总结
目录前言数论逆元图论并查集数据结构前言总结一些极其常用的模板,比赛前打印。慢慢总结,不着急。数论逆元//递归版本int inv(int x) { return (x == 1) ? 1 : (mod - mod / x) * inv(mod % x) % mod; }//数组版本(线性)inv[1] = 1;for (int i = 2; i <= n; i++) inv[i] = (mod - mod / i) * inv[mod % i] % mod;图论并查集数据原创 2021-08-16 19:54:52 · 606 阅读 · 0 评论 -
ST表复习&总结(倍增)
目录前言参考博客感受?模板题目1.2021牛客暑期多校训练营5-K.King of Range(尺取法&倍增&线段树)xxx前言参考博客oi-wiki我的:最近公共祖先LCA总结ST表算法详解感受?既然学到ST表这里了,就多做些题目(学得更精通一些)再溜。模板来源于题目:2021牛客暑期多校训练营5-K.King of Range(尺取法&倍增&线段树)模板:int Log[N], Bit[N];int fmi[N][25], fmx[N]原创 2021-08-01 11:44:05 · 350 阅读 · 0 评论 -
数论学习&总结(只能说是初级)
1.专题传送门:[kuangbin带你飞]专题1-23 2.不知道这个专题涉及了多少知识,主要是想找个机会好好学习一下各种知识。多阅读些东西,决定学些什么东西:【已更新】《算法竞赛中的初等数论》(ACM / OI / MO)前言、后记、目录索引(十五万字符的数论书)、oi-wiki数学部分ps:竟不知道繁凡さん大佬数论也学了那么多知识了,蓝桥杯差了点可能只是某些知识有点欠缺。tql,只能争取我的学习效率能不断增强。有的人仰望就够了,他的成就与你无关。我想从他那里得到的,不过是勇气和动力罢了.原创 2021-05-13 15:17:26 · 930 阅读 · 0 评论 -
2021-07-10-计算几何总结
说明1.以基础知识为主,尽量少用或不用模板。ps:其实挺简单的。2.基础知识判断两线段的关系:相交,不相交,重合原创 2021-07-10 12:10:13 · 1459 阅读 · 0 评论 -
DP总结全(从基础到提高)
目录前言:刷过的题/专题:1.“kuangbin带你飞”专题计划——专题十二:基础DP12.“kuangbin带你飞”专题计划——专题十五 数位DP3.基础知识:一、背包DP参考资料:1.01背包2.完全背包3.多重背包4.混合背包5.二维费用背包6.分组背包7.泛化物品的背包8.有依赖的背包9.杂项一些DP经典经典例题1.将一个数组变成 严格&不严格,不递增&不递减 的数组的最小代价2.矩形中求最大的对称正方形3.最长上升子序列4.最长公共子序列5.双端队列带权取数+区间DP前言:感原创 2021-07-16 11:10:58 · 1341 阅读 · 2 评论