POJ - 1733 Parity game 离散化+带权并查集

题目链接POJ-1733题意一个只含01的串,告诉你a-b的1的个数的奇偶性,问第几句话开始矛盾思路带权并查集,va数组表示父父节点间存在的1的个数的奇偶性,因为n太大了所以需要离散化。离散化学了没咋用过,带权并查集几天不写又全忘了,wa到头疼,思路没难度,之前博客写过类似题,注释多写了些,看代码吧,不懂可以翻翻我之前的带权并查集博客。代码#include<iostream> #include<algorithm>#include<cstring>#
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 1984 Navigation Nightmare 带俩权的并查集

题目链接POJ-1984题意n个结点,互相有横平竖直的道路连接,依次给出m条道路信息,k次询问,每次询问你,在得知前l条道路信息后,两个节点的水平距离+竖直距离是多少,无法到达输出-1思路带权并查集,需要离线操作把道路信息存下来,随用随处理。开两个value数组,分别设置为到父节点水平距离和竖直距离,这个距离是有正负的,对于每次查询找到同一祖先输出距离,找不到输出-1即可,详见代码代码#include<iostream>#include<cstdlib>#defin
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 2492 A Bug‘s Life 拓展并查集模板题

题目链接POJ-2492题意给出n个虫子,m个关系,虫子只有两种性别,每条关系告诉你两只虫子是异性,请问是否有矛盾数据?思路裸的并查集,带权或者拓展都可以,我这里用的拓展并查集,感觉比带权好写得多开两倍空间,1-n为虫子自己,n-2n为虫子的性转个体。同一集合内的虫子性别相同。那么对于每个关系u-v,如果发现uv的祖先节点一样,则出现了bug,否则的话,连接u和v+n,u+n和v。初次写拓展并查集的话可以AC这道题后做一下食物链,我同样写了题解代码#include<iostream&
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 2912 Rochambeau 枚举+并查集

题目链接POJ-2912题意剪刀石头布,给定关系,n个人有一个人是法官,可以随便出。关系不一定合法,需要你判断:这些关系是否是合法的(有且仅有一个法官),如果合法那么谁是法官,在第几个关系后可以找出法官思路先离线操作记录关系,枚举每一个人当作法官,有关法官的关系不记录,看是否存在冲突,如果存在说明这人不是法官,记录冲突发生的位置。枚举完后找一下一共几个人可以当法官,如果没有或者有多个说明关系有问题,否则取冲突位置最大值,即为可以找到法官的位置代码#include<iostream>
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

ZOJ - 3261 Connections in Galaxy War 带权并查集处理拆边

题目链接ZOJ-3261题意给定n个带权结点,给定一些联通关系,然后给出q条命令,分为以下两种查询和x相连的所有节点中,权值比x权值大,且权值最大的点,若有多个输出编号最小的拆除x-y的连边思路多敲几道并查集就能一眼看出是带权并查集了,用value数组维护所在集合中最大权值点的id。关键在于拆边,我们知道并查集是无法进行撤销操作的(如果能的话当我没说……^ ^)。但好在这题只需要进行拆除操作,那么我们完全可以离线操作,将命令从后往前执行,提前建好没被拆除的边,将拆除看作建边,依次回答询问即
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

HDU - 1272 小希的迷宫 并查集模版

题目链接HDU-1272题意给定若干边,问涉及到的点能否构成一个联通的,每两点间道路唯一的图思路并查集模版,每次接受u,v看uv是否在同一集合内,在的话两点间道路就不唯一了,不在就连接。注意两点,一是最终需要是连通图,也就是 1 2 3 4 0 0这样的数据是No。二是没有边,也就是0 0的数据是Yes。代码#include<bits/stdc++.h> #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.ti
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 1251 Jungle Roads 最小生成树模版题

以后刷kuangbin的专题题解不再每篇都写了,只写一道模板题和有价值的变形。题目链接POJ-1251题意给出全部道路,保留部分道路使得联通的同时花费最小。也就是求最小生成树。思路裸的最小生成树,权当试板子代码#include<iostream>#include<algorithm>#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#define endl "\n"using name
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 1679 The Unique MST 次小生成树

题目链接POJ-1679题意问最小生成树是否唯一思路求取次小生成树,看是否和最小生成树权值一样即可总的来说是道模板题,在写之前没学次小生成树,想的是一种朴素做法枚举每一条最小生成树的边,去掉后重新求最小生成树,比较权值即可。但 是缺点很明显,复杂度大,每次删除还要判断图是否联通。之后学习了一下次小生成树的算法,大概思想就是枚举不在最小生成树的边,加入最小生成树后一定会形成环路,删除掉环路中最大的边,比较答案即可。代码#include<cstdio>#include<i
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 3436 ACM Computer Factory 最大流,拆点,输出路径,dinic

题目链接POJ-3436题意有n个工厂加工商品,商品有m个零件,工厂有最大产能q。告诉你每个工厂能接受加工成什么样子的半成品,以及经这个工厂加工之后的产品情况,问最大能生产多少商品。思路看网上题解大多拆点,我这咋没拆。。最大流题目,关键在于建图,建立超级源汇,源点向所有可以从0开始加工的工厂连边(具体到输入数据,就是输入的m个零件都为0或者2),容量为最大产能q。所有加工完毕的工厂(产出的m个零件都为1的)向汇点连边,容量为最大产能q。再枚举每个工厂A,向所有能接受这个A厂产品的工厂B连边(A厂
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 3281 Dining 最大流,拆点,超级源汇

题目链接POJ-3281题意n头牛,m菜,k饮料,菜和饮料一份只能给一头牛,每头牛有固定食谱只吃喝上面有的。每头牛要么不吃不喝,要么有吃有喝,问最多能有几头牛有吃有喝?思路牛拆点拆成in和out,in和out连边,食物向可以吃他的牛连边,牛向所有可以喝的饮料连边,源点向所有食物连边,饮料向汇点连边,所有边权都为1,跑最大流。代码#include<cstdio>#include<iostream>#include<iomanip>#include<
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 1087 A Plug for UNIX 最大流 超级源汇

题目链接https://vjudge.net/problem/POJ-1087题意n个插座,m个插头,k个转换器(B-C代表可以将B插座变成C插座,可堆叠转换器),求最少几个插头没地方插思路英语太差了,看题头疼求最少几个插头没地方插,就用m-最多能插多少插头就行了。我们建立插头-插座的匹配关系,跑最大流就可以了。具体建图部分就是,源点向所有插头连边,容量1,插头向所需插座连边,容量1,转换器的两个插座连边,容量inf(注意不是双向),所有插座向汇点连边容量1,跑最大流就行了。插座给的都是字符
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 2195 Going Home 费用流+BFS

题目链接https://vjudge.net/problem/POJ-2195题意给出n*m网格,中间有多个小人和房子,小人走一步花1¥,要求所有小人都到家(人房无对应关系),求最小花费思路第一眼以为是最短路,但由于小人和房子无对应关系,也就是一个小人选择不同房子会影响别的小人,所以直接最短路肯定wa的。因为每个小人都要回一个房子,在这个基础上求最小花费。所以可以套费用流,超级源点向小人连边权1,房子向汇点连边权1,那么再来建立小人-房子的关系,费用流跑出来是最大流条件下(人人有房住)下最小花费
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 2516 Minimum Cost 费用流,拆图

题目链接https://vjudge.net/problem/POJ-2516题意n个店铺,从m个市场进货,k种货物。给定市场k种货物存量,店铺k种货物需求,运输花费,问是否能满足要求,最小花费是多少思路费用流没得跑,就看如何建图我一开始是一次性建图,出现以下几个问题点编号太难了,一一对应很费脑子边太多了,MCMF超时看别的博客知道了要拆成k张图,对k种货物一一处理。因为我们需要满足所有需求,也就是必须满流,所以可以独立得拆成k张图,拆了之后发现建图简单了一个量级,按部就班建图就可以了
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

POJ - 1459 Power Network 最大流模版,有点意思的输入

题目链接https://vjudge.net/problem/POJ-1459题意n个节点,有用电器,有发电站,有中转站,m条路线,有流量限制,求最大用电器功率思路不知道为什么一个最大流模板题题干这么绕人。。按m建图,s向发电站连边,权为发电量,用电器向t连边,权为最大功率,跑最大流输入部分稍显麻烦,自己用的cin,看别人的博客学的c输入,挺巧妙的。代码#include<cstdio>#include<iostream>#include<iomanip&gt
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

HDU - 4280 Island Transport 双向图最大流

题目链接https://vjudge.net/problem/HDU-4280题意n个城市,m道路,道路有最大通行量,是双向通行的,求最西边城市到最东边城市最大通行量思路裸的最大流,坐标没必要存,记录一下源汇点就行了。注意道路是双向的,所以建边要双向建边,本来增广路算法反向容量0的边就不用再建了。代码#include<cstdio>#include<iostream>#include<iomanip>#include<map>#incl
分类: 其他 发布时间: 10-27 12:20 阅读次数: 0

HDU - 4292 Food 拆点最大流,这题怎么有点熟悉

题目链接https://vjudge.net/problem/HDU-4292题意n个人,f食物,d饮品,每个人要么不吃不喝,要么有吃有喝,给定食物饮品数量,每个人对食物饮品的偏好,求最大满足多少人思路和前两天写的那个牛的那题一个思路,只不过因为食物饮料有数量,边权把1换成数量就行了。建图比较简单,写在代码注释里了,如果还是有点不懂可以看我这篇博客POJ - 3281代码#include<cstdio>#include<iostream>#include<io
分类: 其他 发布时间: 10-27 12:19 阅读次数: 0

HDU - 4289 Control 拆点最大流,领悟拆点的真谛吧!

题目链接https://vjudge.net/problem/HDU-4289题意n个城市,m条路,每个城市可以花费一些钱雇佣保镖,给定起点和终点,要求起点到终点路径上必须有保镖。思路这道题做完让我对拆点的理解更深一步首先题目读完第一个念头就是最小割,但是最小割是相对边来说的,而这道题是点权,那么怎么处理呢?哎,就是拆点。拆点的用处在于将每次到达这个点的点花费改为通过拆开的两个点的边的边花费,可以实现点权到边权的一个转化。那么具体怎么建图呢?我们将点拆成in和out,首先我们让in向out连
分类: 其他 发布时间: 10-27 12:19 阅读次数: 0

UVA - 10480 Sabotage 输出最小割方案

题目链接https://vjudge.net/problem/UVA-10480题意无向图求最小割的方案思路最小割部分是模版,问题在于最小割的方案如何输出。首先根据最小割最大流定理,我们跑一遍Dinic就可以求出最小割,这时残量网络中s和t已经不再联通了。我们可以从s开始跑一遍dfs,沿着所有还未满流的边搜索,所有能到达的节点就是和s在同一集合的节点。之后我们遍历每一条边,将边起点终点不在同一集合内的输出即可。注意需要修改下链式前向星,每一个edge结构体内存一下起点。代码#include
分类: 其他 发布时间: 10-27 12:19 阅读次数: 0

HDU - 2732 Leapin‘ Lizards 拆点最大流+BFS 学好英语QAQ

题目链接https://vjudge.net/problem/HDU-2732题意一个n*m矩阵,矩阵上有一些位置有方块,有的方块上有人,人的跳越距离为d,可以跳跃曼哈顿距离(abs(行差值)+abs(列差值)) 小于等于d的别的方块上。跳跃出迷宫即视为逃脱。每个方块有跳跃限制a,最多允许a次跳跃(从这个方块跳到别的方块减少一次)。问有几个人无法逃脱。思路所有方块拆成in和out,in向out连边,权为跳跃限制。s向有人的方块连边,权为1,对每个方块i做bfs,对于能在d步以内到达的方块j,将i的
分类: 其他 发布时间: 10-27 12:19 阅读次数: 0

HDU - 3605 Escape 状态压缩最大流

题目链接https://vjudge.net/problem/HDU-3605题意n个人(范围10w),m个星球(范围10),每个人有对星球的不同喜好,每个星球有自己的容量,问能否让所有人都在满意的星球上?思路一眼就是最大流(二分匹配我没学。。),朴素做法s向人连边权1,人向感兴趣星球连边权1,星球向t连边权为容量,跑dinic,一遍TLE,芜湖~之前学网络流的时候知道Dinic上界很糟糕,但是大部分题不卡,今天一查才知道上界是O(V²E),换了ISAP的板子也不行,百度一下得知需要状态压缩。
分类: 其他 发布时间: 10-27 12:19 阅读次数: 0