自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 收藏
  • 关注

原创 POJ - 1041 John's trip(欧拉回路)

题目链接:点击查看题目大意:给出一张无向图,要求从起点开始遍历一遍所有的边,最后再回到起点,题目要求输出任意一组方案细节:起点不是点1,而是第一条边中两个端点中娇小的一个点 给出的x y z代表的是点x到点y由id为z的边连接 最后答案要求输出的是边的id题目分析:欧拉回路模板题,不过是开一个vis数组用来记录id的访问情况就好了,明明感觉这个题用邻接表更好写,为什么网上那么多人...

2019-12-27 00:26:53 235

原创 POJ - 3683 Priest John's Busiest Day(2-SAT+路径打印)

题目链接:点击查看题目大意:现在有n对新人要结婚,每一场婚礼都要请牧师主持一个特殊的仪式,这个仪式必须在婚礼的前d分钟或者最后d分钟进行,现在问能否有一种安排,能让牧师参加到每一场婚礼去主持仪式,输出方案题目分析:也是一个2-SAT模板题,只是路径打印有点不好理解,我们可以将两个赋值拆成前d分钟主持仪式和后d分钟主持仪式,这样每个点都有两种赋值情况了,并且我们可以预先储存n场婚礼的时间,随...

2019-12-26 19:47:01 241

原创 POJ - 3678 Katu Puzzle(2-SAT)

题目链接:点击查看题目大意:给出n个数字,以及m个关系,每个关系只可能是xor、and或or其中之一,问能否有一种赋值满足所有m个关系题目分析:2-SAT模板题,因为每个关系中的a和b都有一定的关系,比如a and b=0,就要求a和b中至少有一个数为0,换句话说,如果a为1,那么b必定为0,反过来也是一样,若b为1,则a也必定为0,形如这样的关系我们就可以利用2-SAT建边,然后强连通缩...

2019-12-26 15:11:05 223

原创 POJ - 2230 Watchcow(欧拉图)

题目链接:点击查看题目大意:给出一张由n个点和m条边组成的无向图,要求我们从点1为起点,沿着每条路都走一遍,正向边反向边都走恰好一次,最后到点1结束,题目需要我们输出路径题目分析:欧拉图模板题目,因为题目中保证了给出的图一定时欧拉图,而欧拉图的定义是每个点的度数都是偶数,意思就是只要到达一个节点,那么就必定有一条尚未走过的边可以离开该点,所以我们可以不断用dfs搜索,并标记已经走过的边,实...

2019-12-25 23:23:50 217

原创 POJ - 2942 Knights of the Round Table(点双缩点+二分图判定)

题目链接:点击查看题目大意:国王要在圆桌上召开骑士会议,但是有若干对骑士之间互相憎恨。出于各种各样奇怪的原因,每次开会都必须有以下要求:相互憎恨的两个骑士不能坐在相邻的两个位置 为了让投票表决议题时都能有结果(不平票),出席会议的骑士数必须是奇数如果有某个骑士无法出席任何会议,则国王会为了世界和平把他踢出骑士团。现在给定n个骑士和m个憎恨关系,求出至少需要踢掉多少个骑士题目分析:很...

2019-12-25 19:40:21 197

原创 HDU - 4738 Caocao's Bridges(边双缩点)

题目链接:点击查看题目大意:给出一个由n个点和m条边构成的无向图,表示n个岛屿之间的m条道路,现在周瑜有一个炸药,可以炸掉任意的一条道路,不过每条道路都有一个权值,代表这条道路上防守的卫兵数量,如果周瑜想要炸掉这条道路就必须带上不少于这条路权值的士兵才行,现在问能否带上尽量少的士兵去炸掉一条道路,使得整张无向图变为不相连的两部分题目分析:就是要求图中权值最小的桥,只不过坑有点多:有重边...

2019-12-25 14:48:12 221

原创 HDU - 4685 Prince and Princess(强连通缩点+二分图完备匹配)

题目链接:点击查看题目大意:给出n个王子和m个公主,每个王子都有喜欢的公主,题目需要我们在尽可能多的王子可以匹配到喜欢的公主的情况下,求出每个王子所能娶的所有公主,必须保证王子娶了其中任何一个之后,其他的王子也都能娶到自己喜欢的公主题目分析:poj1904的加强版,之前那个题是n个王子和n个公主,并且初始时就已经给出了完备匹配,但是这个题目需要让我们自己求出完备匹配,然后剩下的就和之前那个...

2019-12-25 13:43:37 226

原创 POJ - 1904 King's Quest(强连通缩点)

题目链接:点击查看题目大意:给出n个王子和n个公主,每个王子都有喜欢的公主,每个王子初始时都娶到了一位喜欢的公主,题目需要我们求出每个王子所能娶的所有公主,必须保证王子娶了其中任何一个之后,其他的王子也都能娶到自己喜欢的公主题目分析:首先对于初始时,已经存在了二分图的完备匹配,也就是每个王子都能和喜欢的公主结婚,不过当前只有一个答案,但实际上答案可能不止于此,所以我们需要强连通缩点,先解释...

2019-12-25 10:18:55 206

原创 HDU - 4635 Strongly connected(强连通缩点+数学+思维)

题目链接:点击查看题目大意:给出一个由n个点和m条边构成的无向图,现在问最多能添加几条边,能使得原图仍然不是强连通图,若原图初始时就是强连通图,直接输出-1题目分析:首先对于原图来说,肯定会有一些集合中已经是强连通的了,我们可以先强连通缩点,再继续操作,最优情况肯定是需要孤立一个点,然后剩下的点构成强连通分量,并且强连通分量中的每个点都对这个孤立的点连边,假设孤立的点所代表的集合大小为x,...

2019-12-25 00:30:33 186

原创 HDU - 4612 Warm up(边双缩点+树的直径)

题目链接:点击查看题目大意:给出一个由n个点和m条边构成的无向图,现在允许加一条边,使得整张图中桥的数量最少,求最少的桥的数量题目分析:因为是要求桥,所以直接用tarjan边双缩点,将原图转换成一棵树后,现在的问题转换为了如何加一条边,使得减少的桥最多,显然如果让这条边将树上最长的一条边首尾相连,那么这条路径上的所有桥都失效了,又因为树上最长的一条路径就是树的直径,所以用总桥数减去树的直径...

2019-12-24 20:50:42 172

原创 POJ - 3177 Redundant Paths(边双缩点)

题目链接:点击查看题目大意:给出一个由n个点和m条边构成的无向图,现在问至少添加几条边,才能使得任意两点之间都能由至少两条不同的路到达题目分析:既然要让任意两点之间至少由两条道路连接,换句话说也就是任意两点都必须在一个环中出现,那么首先考虑有多少个点之间目前只有一条道路,也就是求一下当前的图中有多少个桥,求出桥后我们就可以继续利用边双缩点,这样每一个点代表的集合中任意两个点肯定都是能找到相...

2019-12-24 19:54:32 184

原创 UVA - 796 Critical Links(tarjan求割边)

题目链接:点击查看题目大意:给出一张由n个点组成的无向图,现在要求图中桥的数量题目分析:tarjan求割边模板题,将边双缩点的模板删删减减就是这个题的模板了,注意有个比较坑的点,题目中的无向边会自己给出,但是我们模板用到的无向边必须挨在一起才行,所以我们得用一个map记录一下,在第一次输入这条边时直接建立一条正向边一条反向边,第二次再输入到这条边的时候直接忽略就行了最后的答案也不是sp...

2019-12-24 15:44:41 221

原创 UVA - 315 Network(tarjan求割点)

题目链接:点击查看题目大意:给出一个由n台电脑互相连接而成的网络系统,其中有一些电脑如果一旦损坏,则会造成整个网络出现缺口,导致某些地方无法互相连通,我们称这种电脑为关键点,题目需要求出有多少个关键点题目分析:题意描述的就是在无向图中求有多少个割点,直接拿点双缩点的模板删删减减就是这个题目的答案了代码:#include<iostream>#include<cs...

2019-12-24 13:45:22 183

原创 POJ - 1236 Network of Schools(强连通缩点)

题目链接:点击查看题目大意:一个学校连接在一个计算机网络上,学校之间存在软件支援协议,每个学校都有它应支援的学校名单(学校A支援学校B,并不表示学校B一定支援学校A)。当某校获得一个新软件时,无论是直接获得还是通过网络获得,该校都应立即将这个软件通过网络传送给它应支援的学校,因此,一个新软件若想让所有学校都能使用,只需将其提供给一些学校即可:最少需要将一个新软件直接提供给多少个学校,才能使...

2019-12-24 12:14:45 177

原创 有向图缩点:tarjan强连通缩点(模板)

SCC强连通缩点:(用之前记得init)const int N=1e4+100; const int M=1e5+100; struct Egde{ int to,next;}edge1[M],edge2[M]; int head1[N],head2[N],low[N],dfn[N],c[N],Stack[N],num,cnt,cnt2,cnt1,dcc,n,m,top;...

2019-12-24 11:35:46 252

原创 POJ - 3694 Network(边双缩点+LCA+并查集优化)

题目链接:点击查看题目大意:给出一个由n个点组成的无向图,现在有m次操作,每次操作都会向图中增加一条无向边,每次操作后询问当前图中有多少个桥题目分析:题意很好理解,思路也很好想,就是代码量有点小多(好几个模板拼拼凑凑出来的)既然提到桥了,那么肯定先强连通缩一波点,将图重构成一棵树,求出原图中有多少个桥,随后每次操作都会加边,如果新边的两个端点属于同一个强连通块中,那么不会对答案做出贡献...

2019-12-24 00:48:24 254

原创 POJ - 3189 Steady Cow Assignment(二分图多重匹配)

题目链接:点击查看题目大意:给出n只奶牛以及m个牛棚,接下来给出一个n*m的矩阵,给出每一只奶牛对于每个牛棚的喜爱度,按照降序给出,从rank1到rankm,现在问如何分配牛棚能让所有奶牛中最高的rank和最低的rank之差最小,输出这个差题目分析:题意有点难懂,但看懂题意后其实就是让求一个最小的len,使得存在一段长度为len的rank,其中的匹配方案能让所有奶牛分配成功,说白了就是一个...

2019-12-23 21:37:19 203

原创 无向图缩点:tarjan点双与边双缩点(模板)

e-DCC边双缩点:(用之前记得init) cnt1是从2开始的const int N=1e4+100;const int M=1e5+100;struct Egde{ int to,next;}edge1[M],edge2[M];int head1[N],head2[N],low[N],dfn[N],c[N],num,cnt1,cnt2,dcc,n,m;bool br...

2019-12-23 20:44:55 1452

原创 POJ - 2186 Popular Cows(强连通缩点)

题目链接:点击查看题目大意:给出n只奶牛,以及m组可传递的关系,每组关系给出一个a和一个b,表示为a->b,意思是奶牛a觉得奶牛b很酷,因为关系可传递,所以如果a->b且b->c,能够推出a->c,现在问有多少只奶牛,可以被其他所有的奶牛都认为很酷题目分析:题目给出的是有向边,且满足条件的奶牛肯定可以被所有的点间接或直接到达,故是一个强联通的题目,我们可以先用tar...

2019-12-23 19:58:05 181

原创 UVA - 11806 Cheerleaders(组合数学+容斥原理)

题目链接:点击查看题目大意:给出一个n*m的矩阵,现在有k个拉拉队员,要求在第一列、最后一列、第一行和最后一行至少有一个拉拉队员,注意以下要求:四个角上的拉拉队员可以同时属于两条边 每个方格至多只能存在一个拉拉队员问能有多少种分配方案题目分析:这个题目很明显的要用到组合数学了,我们假设C(n,m)代表的是从n个物品中选出m个的方案数,如果没有约束条件,那么答案显然是C(n*m,k)...

2019-12-23 10:26:58 423 1

原创 HDU - 1796 How many integers can you find(容斥原理)

题目链接:点击查看题目大意:给出一个n,再给出一个含有m个数的集合,问1~n-1中有多少个数可以被集合中的所有数字整除题目分析:因为1~n-1中的每个数可能会被整除多次,所以我们可以利用容斥原理枚举集合,奇加偶减,从而就能算出正确的答案了,类似于之前计算有多少种互斥的数那样写一个dfs就好,不过需要修改一个细节,就是累乘的地方要写成求lcm,因为一个数若想被集合中的所有数整除,只需要被其l...

2019-12-23 00:08:09 187

原创 洛谷 - P2754 [CTSC1999]家园(最大流+并查集)

题目链接:点击查看题目大意:现在有k个人类需要从地球上转移到月球上去,现在有n个宇宙中转站,以及m个飞船周期性运载,每个飞船的载客都有一定的上限,但中转站的载客没有上限,现在给出每个飞船的路线,问最少需要多长时间才能将全部人类从地球运往月球题目分析:一开始没太看懂题,更确切的说是看懂题了但提取不出模型,题目中的飞船其实是一刻不停的在周期性运转,类似于环形公交车一样,所以题目给出的样例答案是...

2019-12-22 16:23:59 282

原创 洛谷 - P2770 航空路线问题(最大费用最大流+路径打印)

题目链接:点击查看题目大意:给出一个由n个点及m条边组成的无向图,现在要求从点1出发,到达点n,再回到点1,一路上经过尽可能多的点,并且保证除了起点和终点外的每个点至多只能经过一次,并输出路径题目分析:从点1出发到点n再回到点1,这个题目之前做过类似的,不过那个题目是要求最短路,用的是最小费用最大流,回到这个题目来看,要求尽可能多的经过点,也就说明每个点对答案的贡献为1,所以要用最大费用最...

2019-12-22 14:14:19 365

原创 洛谷 - P4013 数字梯形问题(最大费用最大流+举一反三)

题目链接:点击查看题目大意:给出一个数字梯形,一共有n行,第一行有m个数字,每行的数字个数逐行向下递增,现在要求从第一行的每个数字分别向下引出一条路径直到最后一层,共m条路径,现在问在以下三个条件下的最大权值和是多少:从梯形的顶至底的m条路径互不相交 从梯形的顶至底的m条路径仅在数字结点处相交 从梯形的顶至底的m条路径允许在数字结点相交或边相交分别输出以上三种情况的答案...

2019-12-22 00:43:31 307

原创 洛谷 - P1251 餐巾计划问题(最小费用最大流+思维建边)

题目链接:点击查看题目大意:给出n天每天所需要的新餐巾的数量,现在有多种方式可以获得新餐巾,问如何运营能使花费最少:直接购买,花费为cost 将脏餐巾送到快洗部,需要洗t1天,花费为c1 将脏餐巾送到慢洗部,需要洗t2天,花费为c2 将脏餐巾留起来不洗题目分析:因为是要通过合理的运营使得花费最少,看的出是一道最小费用最大流的题目,问题就是该如何建边,在题目大意中我已经把可以选择的四...

2019-12-21 23:09:18 163

原创 洛谷 - P3355 骑士共存问题(二分图最大独立集)

题目链接:点击查看题目大意:给出一个n*n的棋盘,上面有m个点无法放置棋子,现在要求尽可能多的放 马,使得所有的马两两无法互相攻击,题目要求输出可以放置的最大数量题目分析:二分图最大独立集的裸题,因为是在棋盘上并且棋子是马,所以我们直接奇偶拆点连边,将每个棋子与其可以攻击到的点连边,最后求出最大独立集就是答案了二分图最大独立集=总点数-二分图最大匹配数所以这个题为什么要放在网络流2...

2019-12-21 18:50:16 312

原创 洛谷 - P2766 最长不下降子序列问题(最大流+动态规划+思维建边)

题目链接:点击查看题目大意:给出一个由n个数组成的序列,有三个子问题:求出当前数列的最长不下降子序列的长度len 如果每个数最多只能使用一次,问最多可以组成多少个长度为len的最长不下降子序列 如果第一个数和最后一个数可以使用多次,问最多可以组成多少个长度为len的最长不下降子序列题目分析:因为n只给到了500,所以对于第一问,我们可以直接暴力跑dp,就是最简单的n*n求最长不下降子...

2019-12-21 16:58:47 304

原创 洛谷 - P3356 火星探险问题(最大费用最大流+拆点+路径打印)

题目链接:点击查看题目大意:给出一个n*m的矩阵,每个点都有一个数字:0:平坦无障碍 1:障碍 2:石块现在在点(1,1)处有k个探测车,他们都要去往点(n,m)处,探测车只能向下或向右行驶,现在要求尽可能多的收集石头,并输出每一辆探测车的路径题目分析:看完这个题目后,感觉这就是k取方格数那个题目的变形版,不过本质上还是大同小异的,因为权值在点上,所以我们拆点,对于障碍的点不做处...

2019-12-21 15:47:43 219

原创 洛谷 - P4012 深海机器人问题(最大费用最大流)

题目链接:点击查看题目大意:给出一个n*m的矩阵,共有(n+1)*(m+1)条边,每条边都有一个权值,现在给出a个起点以及b个终点,问从怎样设计路线能让起点到终点的权值和最大,注意每条边的权值至多计算一次题目分析:这个题目和K取方格数很像,只不过那个题目是要经过点,所以那个题目需要拆点,但这个题目直接用了边,直接按照题意建边即可,但这个题的输入属实恶心,我人都被整懵了,而且题意和输入完全不...

2019-12-21 14:11:35 233

原创 洛谷 - P3357 最长k可重线段集问题(最大费用最大流+思维建边+拆点)

题目链接:点击查看题目大意:给出n条开线段,开线段的意思就是端点的两个点属于开区间,不属于线段中,让从中选出数条线段,满足:在x轴选取任何一个点,选取线段向x轴映射到该点的次数小于等于k 所选线段长度之和最大要求输出最大的长度之和题目分析:和上一道区间的题目大同小异,只不过有一些小坑需要处理:在计算长度的时候会爆int 特判线段垂直于x轴的情况先说一下为什么要特判垂直于x轴...

2019-12-21 12:46:37 207

原创 POJ - 1091 跳蚤(容斥原理+数论)

题目链接:点击查看题目大意:中文题意,不多赘述题目分析:根据题目的意思,其实只需要让所有数的最大公约数为1就可以满足条件,好像是用到了欧几里得的一些知识,奈何我的数论比较菜,也不会证明,就直接用网上大牛们的结论吧,题目说了第n+1个数已经帮我们选好了,为m,所以我们只需要找出有多少种情况选择n个与m互质的数就是题目所求了,不过正难则反,我们可以求有多少组数与m是有不互质的,用总数减去当前答...

2019-12-21 03:07:19 403

原创 HDU - 4135 Co-prime(容斥原理)

题目链接:点击查看题目大意:给出一个区间[l,r],再给出一个n,问区间中有多少个数与n互质题目分析:容斥原理应用的经典题目,马克一篇非常不错的博客,留着以后慢慢消化:https://blog.csdn.net/m0_37286282/article/details/78869512那么这个题目转换一下,先求1~m中有多少个与n互质的数,这样cal(r)-cal(l-1)就是答案了...

2019-12-21 02:24:40 225

原创 洛谷 - P3358 最长k可重区间集问题(最大费用最大流+思维建边)

题目链接:点击查看题目大意:给出n个开区间,现在要求从中选取一定数量的区间,需要满足:对于任意点x,所选取的区间中包含点x的个数小于等于k 区间长度和最大要求输出最长的区间长度和题目分析:一开始建图想错了方向,陷入了思维定式中,最后是看了题解,我感觉最好的一种建图方式就是建一条直线的图,大概就是将所有区间的端点排序,依次相连流量为无穷大,花费为0的边,而题目给出的区间之间可以连流量...

2019-12-20 16:21:55 202

原创 洛谷 - P4009 汽车加油行驶问题(分层图最短路/最小费用最大流)

题目链接:点击查看题目大意:给出一个n*n的矩阵表示道路,途中有一些加油站,现在要从点(1,1)到达点(n,n),问最小花费,其中的一些规则如下:汽车只能沿着网格边行驶,装满油后可以行驶K条边,出发时已经装满油 汽车经过一条网格边时,若x或y减小,需要花费B元,其余情况没有花费 汽车在行驶过程中遇到油库则必须强制加满油,并花费A元 在需要时可以在网格点增设临时油库,并支付花费C元(不...

2019-12-20 13:52:52 651 3

原创 洛谷 - P2774 方格取数问题(最小割-最大流+奇偶拆点)

题目链接:点击查看题目大意:给出一个n*m的棋盘,每个位置都有一个正整数,现在要从方格中取数,要求任意两个数在方格中的位置不相邻,求取出的数的最大和题目分析:正难则反,在这个题目中正着建图比较难,我们可以考虑反着建图,因为题目要求的是位置互不相邻,我第一反应想到的是奇偶拆点,因为坐标之和奇偶性相同的点肯定互不影响,拆点后很自然的将源点与某一集合相连,让另一集合与汇点相连,但接下来就不知道该...

2019-12-20 11:06:56 264

原创 洛谷 - P3254 圆桌问题(最大流+路径打印)

题目链接:点击查看题目大意:n个单位的员工来吃饭,每个单位有ai名员工,现在有m张桌子,每张桌子能容纳bi个人,现在要求将每个员工分配到桌子上用餐,需要满足的一个要求是每张桌子上不能有相同单位的两个人,判断能否分配,并输出方案题目分析:最大流分配方案的问题,不过一开始看到每张桌子上不能有相同单位的两个人,感觉这个条件好麻烦,不太会处理,后来在纸上画了一下图才发现有了这个条件让这个题目变成了...

2019-12-20 10:41:21 223

原创 洛谷 - P4011 孤岛营救问题(bfs+状态压缩)

题目链接:点击查看题目大意:给出一个n*m的迷宫,其中有一些边为不可逾越的墙,有一些边为不同型号的门,而钥匙会分布在迷宫的不同位置,求从点(1,1)到点(n,m)的最短时间题目分析:出现在网络流里的一道题目。。但是一道很裸的bfs+状压,因为不同门的类型给的特别少,只有10种,如果bfs的话时间复杂度也才n*m*2^10,直接搜索就好了注意一下几个坑点:钥匙是永久性的而不是一次性的...

2019-12-20 10:12:14 242

原创 洛谷 - P4015 运输问题(费用流)

题目链接:点击查看题目大意:有n个卖家和m个买家,每个卖家会卖ai个物品,每个买家会买bi个物品,每个卖家向每个卖家卖东西会有一定的代价,问如何匹配才能让代价最小/最大题目分析:和上一道题大同小异的一道题目,只不过这个题目从完美匹配上升到了广义的匹配,既然不再是完美匹配,也就说明不能再用KM来解决了,直接上费用流就好了:源点->每个卖家,流量为库存,花费为0 每个卖家->...

2019-12-20 09:30:14 252

原创 洛谷 - P4014 分配问题(费用流/KM)

题目链接:点击查看题目大意:给出n个工人和n个工作,每个人做每一个工作的效率都是不同的,问如何分配能让效率最低/最高题目分析:最小费用最大流和最大费用最大流的模板题,直接套模板跑答案就行了,没有任何细节需要注意,就是两个模板组合在一起时会有很多函数的功能都是相同的,确切来说修改一下spfa的内部实现然后复制一份一模一样的就好了,一开始可以先把题目给出的效率矩阵储存下来,在跑费用流之前重新建...

2019-12-20 00:06:27 360

原创 洛谷 - P2764 最小路径覆盖问题(最大流+二分图最小路径覆盖+路径打印)

题目链接:点击查看题目大意:给出一个由n个点和m条边组成的有向无环图,现在需要我们求最少可以将n个点分为多少条简单路径,并打印出每一条路径题目分析:题意挺难懂的。。简单来说就是让求二分图最小路径覆盖,公式就是点数减去二分图最大匹配,所以肯定是要拆点了,拆点建图后直接跑最大流就是答案了,还是比较麻烦的就是路径打印了,这里打印的是每一条简单路径,我是跑了一遍残余网络,用数组模拟链表储存每一条道...

2019-12-19 23:43:59 226

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除