自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LSS

xxxx ..

  • 博客(222)
  • 收藏
  • 关注

原创 poj 2375 (强连通分量缩点max(入度,出度))

题意:给定一个滑雪场,每个点能向周围4个点高度小于等于这个点的点滑,现在要建电缆,使得任意两点都有路径互相可达,问最少需要几条电缆思路:强连通缩点,每个点就是一个点,能走的建边,缩点后找入度出度为0的个数的最大值就是答案,注意一开始就强连通了答案应该是0#include#include#include#include#include#include#incl

2014-12-03 21:13:03 701

原创 poj 2186 (强连通缩点传递关系)

题意:有N头牛 每一头牛都梦想着成为popular cow,(但这是不可能滴) 有m组仰慕的关系,仰慕有传递性比如说A觉得B是popular and B thinks C is popular, then A thinks C is popalur also;现在问有多少头牛是会被其他牛都仰慕。思路:求强连通分量,缩成点 点内的头当然是相互仰慕的咯!! 然后求新的图 的出度 出

2014-12-02 19:51:59 619

原创 poj 2553 (强连通缩点出度为0)

题意 :   一个有向图  , 如果一个点u能够达到点v, v也能到达u, 则u是sink点 ;  找出所有的sink  ,按顺序输入  ;   注意 如果点u能够到达的所有点中,有一个点不能到达u , u就不算是sink ,必须所有的点都能够达到u  ;     第二组数据  :     1 --> 2        1 能到达的点事  1 , 2      但2不能到达1

2014-12-01 20:08:41 571

原创 poj 1236 (强连通缩点入度问题)

题目大意:N(2解题思路:1.先求强连通分支,然后把图缩小成为一个有向无环图;2.求出这个有向无环图中,入度为0的点的个数为a,出度为0的点的个数为b;3.第一个问题的答案就是a,第二个问题的答案为max{a,b};4.最恶心的地方:当一开始这个图就是一个强连通图的时候,第二问题的答案为0。#include#include#include#

2014-11-30 19:30:57 542

原创 hdu 3830 二分+LCA

题意 :  有三个棋子,棋子只能隔着一个棋子首先,我们把3个数排好序。设三个数从小到大是a, b, c设:s1=b-as2=c-b那么b可以跳动到a左边,或者c右边。如果s1如果s1>s2,那么c可以跳到ab中间也就是说,如果s1≠s2,那么一个局面有3种跳法。如果s1=s2,那么只有2种跳法。如果我们用图来表示状态之间的关系,就很容

2014-11-16 18:16:31 1127

原创 zoj 3732 构造(Havel-Hakimi)

题意 : 一个无向图,无环无重编,给出每个点的度, 如果图的

2014-11-11 21:43:26 583

原创 hdu 2874 Tarjan离线 LCA

题意:给定有N个结点的森林和Q次询问,求任意给定的两个结点之间的距离。如果两个点事不连通的,输出

2014-11-10 19:50:30 524

原创 hdu 2586 最近公共祖先 LCA

最近公共祖先问题~~题目大意:一个村子里有n个房子,这n个房子用n-1条路连接起来,接下了有m次询问,每次询问两个房子a,b之间的距离是多少。很明显的最近公共祖先问题,先建一棵树,然后求出每一点i到树根的距离dis[i],然后每次询问a,b之间的距离=dis[a]+dis[b]-2*dis[LCA(a,b)];LCA(a,b)即是a,b的最近公共祖先。。对于

2014-11-09 19:38:10 513

原创 zoj 3229 (有上下届的最大流)

题意:一个屌丝给m个女神拍照,计划拍照n天,每一天屌丝给给定的C个女神拍照,每天拍照数不能超过D张,而且给每个女神i拍照有数量限制[Li,Ri],对于每个女神n天的拍照总和不能少于Gi,如果有解求屌丝最多能拍多少张照,并求每天给对应女神拍多少张照;否则输出-1。分析:增设一源点st,汇点sd,st到第i天连一条上界为Di下界为0的边,每个女神到汇点连一条下界为Gi上界为oo

2014-10-29 20:51:53 490

原创 poj 3820 牡丹江区域赛 (树的直径+bfs)

题意 :  给你一颗数,要你

2014-10-21 21:53:52 583

原创 poj 2914(无向图最小割Stoer-Wagner算法)

题意 : 无向图,每对顶点间可能有多条边,问最少删除多少条边才能将图分为两个联通子图一个无向连通网络,去掉一个边集可以使其变成两个连通分量则这个边集就是割集;最小割集当然就权和最小的割集。可以用最小切割最大流定理:1.min=MAXINT,确定一个源点2.枚举汇点3.计算最大流,并确定当前源汇的最小割集,若比min小更新min

2014-10-21 19:40:33 631

原创 poj 3921 (控制费用的 最小割)

题意:                             有N个据点..敌人要从1号据点往N号据点去..有些据点间存在直接路径..敌人走一条路径都为一个单位时间...而咱可以摧毁一个据点..这么做就让与这个据点相连的路径全部作废..问为了防止敌人在K单位时间内到达N点..至少要摧毁几个据点..注意的是1、N号据点是不能摧毁的...并且1与N没有直接的路径..建图:

2014-10-19 20:17:56 610

原创 poj 3469 最小割

题意:现在有n个任务,两个机器A和B,每个任务要么在A上完成,要么在B上完成,而且知道每个任务在A和B机器上完成所需要的费用。然后再给m行,每行a,b,w三个数字。表示如果a任务和b任务不在同一个机器上工作的话,需要额外花费w。现在要求出完成所有任务最小的花费是多少。

2014-10-17 19:30:59 468

原创 poj 3308 最小点权覆盖(对数乘积)

火星人侵略地球,他们意图登陆破坏某个地区的兵器工厂。据探子回报,火星人登陆的地区为n*m大小的地域,而且每一个火星人的着陆点坐标已知。火星人很强悍,只要有一个火星人着陆后能够幸存,他必定能毁坏这片区域的全部兵工厂。为了防止这种情况发生,必须保证在火星人着陆的一瞬间把他们全部同时杀死。现在防卫队有一个激光枪,开一枪就能把 在同一行(或同一列)着陆的火星人全部杀死。但是这种激光枪的使用

2014-10-17 09:47:48 555

原创 hdu 4005 边双联通+LCA

题意:有一幅图,现在要加一条边,加边之后要你删除一条边,使图不连通,费用为边的费用,要你求的是删除的边的最小值的最大值(每次都可以删除一条边,选最小的删除,这些最小中的最大就为答案)首先要进行缩点,把图缩为一棵树,因此,加入一条边后图就会存在一个环,环中的任何一条边删除后都不会导致图不连通之后找一条最小的边,可以说这条边肯定是在加边之后的连通块里的,因为如果不在连通块里,那就直接可以把

2014-10-16 20:04:20 525

原创 poj 3204 最小割(关键割边)

题意: 给出有n 个节点的网络,和m条单向边,知道了每条边的容量,问哪些边满足增加该边的容量后,能使得从起点到终点的总流量增加(只能修改一条边!)。注意一点,在一条流路中只能修改一条,好像s->1->2->t,假设每条边的容量都是2,那么最大流的流路只有一条,但是这条流路中,要想增大一条边的容量而使整个网络的最大流增加是不行的,一定要把所有边容量都增大,这与题意不符,所以这个case输出是

2014-10-16 19:08:18 548

原创 poj 3084(最小割)

大意就是,有一些房间,初始时某些房间之间有一些门,并且这些门是打开的,也就是可以来回走动的,但是这些门是确切属于某个房间的,也就是说如果要锁门,则只有在那个房间里才能锁,这跟现实很符合啊,不然随便个人站你家外边把你门给锁了是什么情况。 现在一些房间里有一些恐怖分子,要搞破坏,但是我们现在有个房间很重要,不能被他们破坏,这就需要锁一部分的门,不让恐怖分子有可趁之机,那么最少需要锁多个门呢?很

2014-10-16 13:47:02 490

原创 有上下界的网络流

1.无汇源有上下界最大流以前写的最大流默认的下界为0,而这里的下界却不为0,所以我们要进行再构造让每条边的下界为0,这样做是为了方便处理。对于每根管子有一个上界容量up和一个下界容量low,我们让这根管子的容量下界变为0,上界为up-low。可是这样做了的话流量就不守恒了,为了再次满足流量守恒,即每个节点"入流=出流”,我们增设一个超级源点st和一个超级终点sd。我们开设一个数组du[]来记录

2014-10-10 19:14:28 483

原创 POJ 2396 (有上下界的最大流)

题意:现在有一个n*m的方阵,方阵里面的数字未知,但是我们知道如下约束条件:            1> 每一行的数字的和             2> 每一列的数字的和             3> 某些格子有特殊的大小约束,用大于号,小于号和等于号表示    求解是否存在在满足所有的约束的条件下用正数来填充该方阵的方案,若有,输出填充后的方阵,否则输出IMPOSSIBLE.

2014-10-09 21:02:26 543

原创 zoj 3209 矩形精确覆盖(dancing link)

题意 :  给你一个大小为 n * m 的矩形 , 坐标是( 0 , 0 ) ~ ( n , m )  。然后给你 p 个小矩形 , 坐标是( x1 , y1 ) ~ ( x2 , y2 ) , 你选择最小的几个矩形 , 使得这些矩形可以覆盖整个矩形 , 并且互相不会重叠 。( n , m 思路 : Dancing Links 的精确覆盖问题 。我们将 n * m 的矩形分成 n

2014-10-07 16:05:07 574

原创 hdu 3663 (dancing links)精确覆盖

题目描述:有n个城市,还有m条边(双向),每个城市都有一个发电站,如果一个发电站工作,它能够给它所在的城市和直接相邻的城市提供电力。并且要求每个城市只能由一个发电站来提供电力(即不能够被两个或以上的发电站同时覆盖)。然后,每个城市的发电站都有一个允许工作时间 ai bj,表示发电站只能在[ai,bi]内的某个连续区间内工作(也可以一个都不选),并且只能选一个区间(即ai = 1,

2014-10-07 12:21:01 503

原创 二进制枚举子集

最近在看刘汝佳的《算法竞赛入门经典》,里面提到了枚举子集的二进制算法,即是用二进制来表示{0,1,2……n-1}的子集S,书中关于此算法给了源代码,但代码中标红字的地方我表示不理解作者的用意,求大神指点为何要这样写#include "stdio.h"#includevoid print_subset(int n,int s){for(int i=0;iif(s&(1)pri

2014-10-06 19:10:53 481

原创 第八届省赛F题 (枚举+最小生成树)

DescriptionA kingdom has n cities numbered 1 to n, and some bidirectional roads connecting cities. The capital is always city 1.After a war, all the roads of the kingdom are destroyed. The kin

2014-10-06 19:09:16 741

原创 poj 3740 dancing links

题意:给你一个n*m(n

2014-10-05 20:13:41 412

原创 poj 2125 二分图最小点权覆盖

给你一个有向图,每个点有两种操作,一种是删除它的所有入边,一种是删除它的所有出边,并且每个删除都有一个花费,让你求最小花费使得这个图删除所有的边。先看一下下面几个定义:点覆盖集:是无向图的一个点集,使得该图中所有边都至少有一个端点在该集合内。最小点覆盖集:在无向图中,点数最少的点覆盖集。最小点权覆盖集:是在带点权无向图中,点权之和最小的点覆盖集。此题无疑

2014-10-04 16:39:46 608

原创 hdu 4687 带花树求一般图最大匹配(模板)

题意 :  给一个一般图,求所有的最大匹配情况不包含的边 ,

2014-10-04 11:41:46 556

原创 poj 1966(最小割集求顶点连通度)

题目大意:给你一个无向图,这个图有一个安全系数f,f的定义是:1.f为n,如果不管删除多少个顶点,剩下的图仍然是连通的2.f为删除最少的顶点数,使得剩下的图不连通给你一个图,求出f解题思路:题目给出的目标很明显,转换成图,那么f就是无向图中的连通度吗,或者说,是求无向图中的最小割点集。首先将每个点拆成两个点每个点可以表示成i与i+n那么有向边的容量为1

2014-10-03 19:30:16 603

原创 POJ 1815 (最小割的点集)

题意 : 从s到t的连通图中,最少删除多少个点,可以使s和t不连通,也就是求一个最小点割集

2014-10-02 21:17:07 473

原创 hdu 3849(双联通求桥)

题目意思:给你n,m表示一个图的n个点,m条边。   下面m行为  x ,y即x和y之间有条边,求割边,2个坑点:若图不连通输出0;若有多条割边按输入先后顺序输出,而且x,y顺序也和输入时一致

2014-09-26 20:41:11 546

原创 poj 3762(费用流+区间K覆盖)

题目大意:给你n个时间段,每个时间段都有一个权值,每个时间段只能选择一次,其中一天时间点能选择互不重叠的时间段,最多选择k天。问怎样选择使得总权值和最大。

2014-09-26 19:22:53 816

原创 hdu 2460(边双连通分量+LCA)

题意:给你一个无向连通图,让后给出每给q条要添加的边,输出添加每一条边之后图中还剩下多少桥首先我们可以通过Tarjan求边双连通分量,对于边(u,v),如果满足low[v]>dfn[u],则为桥,这样我们就可以知道图中桥的数目了。对于每一次query,可以考虑dfs树,树边肯定是桥,然后连上u,v这条边之后,就会形成一个环,这样环内的边就不是割边了,所以只要找到u,v的LCA,把这个路径上的桥

2014-09-24 22:03:17 561

原创 poj 3686(费用流+拆很多点)

题目大意:有n个订单m个车间,每个车间均可以单独完成任何一个订单。每个车间完成不同订单的时间是不同的。不会出现两个车间完成同一个订单的情况。给出每个订单在某个车间完成所用的时间。问订单完成的最小平均时间是多少。

2014-09-24 21:16:44 543

原创 无向图和有向图的tarjan

// 有向图tarjan void tarjan(int u) { int j,v; dfn[u]=low[u]=cnt++; vis[u]=1; S.push(u); for(j=head[u];j!=-1;j=edge[j].next) { v=edge[j].to; if(!

2014-09-23 22:18:17 703

原创 hdu 2242(边双联通分量)

众所周知,HDU的考研教室是没有空调的,于是就苦了不少不去图书馆的考研仔们。Lele也是其中一个。而某教室旁边又摆着两个未装上的空调,更是引起人们无限YY。一个炎热的下午,Lele照例在教室睡觉的时候,竟然做起了空调教室的美梦。Lele梦到学校某天终于大发慈悲给某个教室安上了一个空调。而且建造了了M条通气管道,让整个教学楼的全部教室都直接或间接和空调教室连通上,构成了教室群,于是,

2014-09-23 22:06:26 433

原创 poj 3680 (费用流拆点+离散+神奇的构图)

题目:给定N个区间(ai,bi)权值wi,选一些区间,求最大权和且每个点最多覆盖K次

2014-09-23 20:19:28 442

原创 hdu 3594 (求强连通图+判断没条边是否只属于一个环)

题目大意:给一个有向图,问该图是否满足以下两个条件:1.它是一个强连通图。2.它的每一条边仅属于一个环。如果满足输出YES,否则输出NO1. 求一遍强连通分量,只要强连通数量=1 ,就

2014-09-22 20:55:34 653

原创 poj 3422(拆点费用流)

题意:有个方阵,每个格子里都有一个非负数,从左上角走到右下角,每次走一步,只能往右或往下走,经过的数字拿走 每次都找可以拿到数字和最大的路径走,走k次,求最大和

2014-09-22 20:19:07 424

原创 hdu 5024 暴力枚举

给以个n*n的矩阵,

2014-09-20 17:35:23 547

原创 hdu 3639(强连通分量+dfs)

题目大意 有 n(2需要注意的是 support 是可以传递的,比如:A support B && B support C,那么,C 得到的 support 是 2 做法分析 可以想到的是,枚举每个人得到的 support 的个数,这个做法是 o(n^2) 的。在 50 组数据的情况下,想要在 2s 内出结果,有点不现实思来想去,这道题貌似没有什么好的做法那么就

2014-09-19 20:44:56 432

原创 poj 2516 (多次费用流)

题意:有N个客户,M个仓库,和K种货物。已知每个客户需要每种货物的数量,每个仓库存储每种货物的数量,每个仓库运输各种货物去各个客户的单位费用。判断所有的仓库能否满足所有客户的需求,如果可以,求出最少的运输总费用。最小费用最大流。先判断是否每种货物的存储总量都足够,足够的话,对每一种货物进行一次最小费用最大流求出完成这种货物运输的最小总费用,所有的总费用相加就是结果了

2014-09-19 20:01:45 375

空空如也

空空如也

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

TA关注的人

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