图论
追风者_
要我自我介绍,挺秃然的
展开
-
P3384 【模板】轻重链剖分/树链剖分
模板题记录一下AC代码:#include<iostream>#include<string>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<map>#include <queue>#include<sstream>#include <stack>#include原创 2021-08-08 18:40:26 · 204 阅读 · 0 评论 -
2021HDU多校1 Xor sum 字典树
题意:问你能不能找到一个最小的区间【L,R】,使得区间异或和>=k,同时保证左端点最小。思路:选取区间[l,r][l,r][l,r],其值等效于sumr异或suml−1sum_r 异或 sum_{l-1}sumr异或suml−1,那我们就利用一个字典树,在枚举右端点时,查询满足与当前sumrsum_rsumr异或起来大于等于k且下标最大的前缀位置。插入时,每次更新走过当前路径上的点时的最大下标。这样在查询的时候,我们先贪心从高位开始走异或起来和k逐位相同的路线,然后看k该位为0时,我们若原创 2021-07-23 14:32:50 · 206 阅读 · 0 评论 -
【网络流24题】P4016 负载平衡问题 最小费用最大流
题目描述GG 公司有 nn 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 nn 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。思路:可以唯一确定最后各自都相等时的值each=sum/neach = sum/neach=sum/n。将a[i]重新赋值为a[i] -= each。建图:对于a[i]为正的部分,相当于流出量,由s连出。对于a[i]为负的部分,相当于流入量,连向t,费用都为0。然后相邻的再连边,流量为inf,费用为1(相当于每个数流动时需要消耗原创 2021-03-26 23:40:58 · 166 阅读 · 0 评论 -
【网络流24题】P4174 [NOI2006] 最大获利 最大权闭合子图
思路:将题中的点和边都看成事件。由于选边的时候要选成对的点,且边事件依赖于点事件的发生,满足闭合图的性质。建图:建立源点,连向有正贡献的边事件(也看成一个点),流量为对应贡献,这个点再向依赖的点连流量为inf的边,依赖点是负贡献,它们各自向汇点连流量为负贡献的绝对值的边。这个时候对这个二分图跑求一个最小割,即是最小损失,然后用正贡献和-最小损失即是答案。关于正确性,如果割掉用户边,就相当于减少了收益,可看成损失。若割掉了中转站的边,相当于付出了代价,看成损失。而流量为inf的边不会被割,也就解决.原创 2021-03-26 23:05:47 · 116 阅读 · 0 评论 -
【网络流24题】 P2774 方格取数问题 最小割
有一个 mm 行 nn 列的方格图,每个方格中都有一个正整数。现要从方格中取数,使任意两个数所在方格没有公共边,且取出的数的总和最大,请求出最大的和。思路:任意一个方格都和周围四个互斥,那么就构成了一个二分图,且可以用(i+j)的奇偶性区分两部。我们想要实现选or不选某个点(在二分图中),来看有没有把它的值加入贡献。考虑网络流,让源点向其中一部连流量为对应值的边,另一部向汇点连流量为对应值的边。二分图内部连流量无限。建图完后,会发现问题转化成了割掉多少边使得损失最小,这就是一个求最小割的问题了。关于原创 2021-03-26 22:17:35 · 193 阅读 · 0 评论 -
【AcWing 178】第K短路 A*算法
给定一张N个点(编号1,2…N),M条边的有向图,求从起点S到终点T的第K短路的长度,路径允许重复经过点或边。注意: 每条最短路中至少要包含一条边。输入格式第一行包含两个整数N和M。接下来M行,每行包含三个整数A,B和L,表示点A与点B之间存在有向边,且边长为L。最后一行包含三个整数S,T和K,分别表示起点S,终点T和第K短路。输出格式输出占一行,包含一个整数,表示第K短路的长度,如果第K短路不存在,则输出“-1”。数据范围1≤S,T≤N≤1000,0≤M≤105,1≤K≤1000,原创 2020-07-31 20:07:27 · 199 阅读 · 0 评论 -
【SCAU18新生赛 论剑】 18362 寻找Megumi 多源最短路
Description女神Megumi将要在scau开签名会。为了拿亲笔签名,众人纷纷前往。但是伦也童鞋决定要自己组装一个漂亮的签名本,这个签名本需要到很多个地方收集材料。但是他是个路痴,他想知道如何用最快的形式获取这些材料然后去寻找Megumi。已知scau是一个n个节点m条边的图,伦也需要到k个地方收集材料,a0,a1,…,ak,由于伦也智商有限,这些材料必须按顺序收集。伦也从点1出发,Megumi在点n。请问他需要至少用多少时间到达?输入格式第一行一个整数T,代表有T(T < 10)原创 2020-07-14 11:09:33 · 203 阅读 · 0 评论 -
【洛谷 P2740】 草地排水Drainage Ditches 网络流模板题(最大流)
题目背景在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水。这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间。因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小溪)。作为一名一流的技师,农夫约翰已经在每条排水沟的一端安上了控制器,这样他可以控制流入排水沟的水流量。题目描述农夫约翰知道每一条排水沟每分钟可以流过的水量,和排水系统的准确布局(起点为水潭而终点为小溪的一张网)。需要注意的是,有些时候从一处到另一处不只有一条排水沟。原创 2020-07-09 22:48:15 · 204 阅读 · 0 评论 -
【暑训排位 #8 B】 二分图 最大匹配
Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town’s streets you can never reach the same intersection i.e. the town’s stree原创 2020-07-07 18:26:43 · 116 阅读 · 0 评论 -
【暑训排位 #5 D】 Jobbery tarjan 缩点
Hard times came for Martian senate. Even this pride of Martian democracy can not oppose the almighty jobbery. Let’s consider the procedure of typical decision making. A member of Martian senate, who needs a certain law, submits it to senate. To improve his原创 2020-07-04 20:00:19 · 149 阅读 · 0 评论 -
【AcWing 373】車的放置 二分图 匈牙利算法
给定一个N行M列的棋盘,已知某些格子禁止放置。问棋盘上最多能放多少个不能互相攻击的車。車放在格子里,攻击范围与中国象棋的“車”一致。输入格式第一行包含三个整数N,M,T,其中T表示禁止放置的格子的数量。接下来T行每行包含两个整数x和y,表示位于第x行第y列的格子禁止放置,行列数从1开始。输出格式输出一个整数,表示结果。数据范围1≤N,M≤200输入样例:8 8 0输出样例:8题意:如题思路:观察車攻击的规则,最后的棋盘状态肯定是每个車占一行和一列,换句话说,行和列必须是一一对原创 2020-06-30 13:34:19 · 227 阅读 · 0 评论 -
【Acwings 372】 棋盘覆盖 二分图最大匹配
给定一个N行N列的棋盘,已知某些格子禁止放置。求最多能往棋盘上放多少块的长度为2、宽度为1的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。输入格式第一行包含两个整数N和t,其中t为禁止放置的格子的数量。接下来t行每行包含两个整数x和y,表示位于第x行第y列的格子禁止放置,行列数从1开始。输出格式输出一个整数,表示结果。数据范围1≤N≤100输出样例:8 0输出样例:32题意:如题思路:构建二分图:破题口在于长度为2宽为1的方块,说明占据的两个位置其i原创 2020-06-28 11:22:19 · 200 阅读 · 0 评论 -
【暑训排位#3 B】 URAL - 1934 最短路
Bootstrap: Jones’s terrible leviathan will find you and drag the Pearl back to the depths and you along with it.Jack: Any idea when Jones might release said terrible beastie?Bootstrap: I already told you, Jack. Your time is up. It comes now, drawn with r原创 2020-06-27 18:18:42 · 120 阅读 · 0 评论 -
【暑训排位#3 A】 URAL - 1137 DFS
Several bus routes were in the city of Fishburg. None of the routes shared the same section of road, though common stops and intersections were possible. Fishburg old residents stated that it was possible to move from any stop to any other stop (probably m原创 2020-06-27 18:04:59 · 149 阅读 · 0 评论 -
【暑训个人赛#2 F】 POJ - 3352 Tarjan模板题
It’s almost summer time, and that means that it’s almost summer construction time! This year, the good people who are in charge of the roads on the tropical island paradise of Remote Island would like to repair and upgrade the various roads that lead betwe原创 2020-06-26 19:12:20 · 180 阅读 · 0 评论 -
【POJ 2186】 Popular Cows Tarjan 缩点 详解
DescriptionEvery cow’s dream is to become the most popular cow in the herd. In a herd of N (1 <= N <= 10,000) cows, you are given up to M (1 <= M <= 50,000) ordered pairs of the form (A, B) that tell you that cow A thinks that cow B is popular原创 2020-06-03 15:50:20 · 174 阅读 · 0 评论 -
【HDU 1599】 find the mincost route 最小环模板题
Problem Description杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,…VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。Input第一行是2个整数N和M(N <= 100, M <= 1000),代表景区的个数和道路的条数。接下来的M行里,每行包括3个整数原创 2020-06-02 22:18:54 · 164 阅读 · 0 评论 -
【洛谷 P3388】 【模板】割点(割顶) Tarjan 算法
题目背景割点题目描述给出一个 nn 个点,mm 条边的无向图,求图的割点。输入格式第一行输入两个正整数 n,mn,m。下面 mm 行每行输入两个正整数 x,yx,y 表示 xx 到 yy 有一条边。输出格式第一行输出割点个数。第二行按照节点编号从小到大输出节点,用空格隔开。输入输出样例输入 #1 复制6 71 21 31 42 53 54 55 6输出 #1 复制15说明/提示对于全部数据,1\leq n \le 2\times 10^41≤n≤2×104原创 2020-06-02 12:47:47 · 256 阅读 · 0 评论 -
【AcWing 344】 最小环问题 floyd
给定一张无向图,求图中一个至少包含3个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题。你需要输出最小环的方案,若最小环不唯一,输出任意一个均可。输入格式第一行包含两个整数N和M,表示无向图有N个点,M条边。接下来M行,每行包含三个整数u,v,l,表示点u和点v之间有一条边,边长为l。输出格式输出占一行,包含最小环的所有节点(按顺序输出),如果不存在则输出’No solution.’。数据范围1≤N≤100,1≤M≤10000,1≤l<500输转载 2020-05-20 19:12:41 · 277 阅读 · 0 评论 -
【AcWing 342】 道路与航线 SPFA SLF优化
农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到T个城镇,编号为1~T。这些城镇之间通过R条道路 (编号为1到R) 和P条航线 (编号为1到P) 连接。每条道路 i 或者航线 i 连接城镇Ai到Bi,花费为Ci。对于道路,0≤Ci≤10,000;然而航线的花费很神奇,花费Ci可能是负数(−10,000≤Ci≤10,000)。道路是双向的,可以从Ai到Bi,也可以从Bi到Ai,花费都是Ci。然而航线与之不同,只可以从Ai到Bi。事实上,由于最近恐怖主义太嚣张,为了社会和谐,原创 2020-05-20 13:38:39 · 151 阅读 · 0 评论 -
【AcWing 340】 通信线路 Dijkstra堆优化 分层图
在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。求至少用多少钱可以完成升级。输入格式第1行:三个整数N,P,K。第原创 2020-05-20 09:13:08 · 348 阅读 · 0 评论 -
【HDU Ant Trip】 欧拉图 + 并查集
Ant Country consist of N towns.There are M roads connecting the towns.Ant Tony,together with his friends,wants to go through every part of the country.They intend to visit every road , and every roa...原创 2020-03-22 20:42:19 · 206 阅读 · 0 评论