自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KIJamesQi的博客

大神养成中。

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

原创 hdu2460 Network

思路:题目的意思是要求在原图中加边后桥的数量,首先我们可以通过Tarjan求边双连通分量,对于边(u,v),如果满足 low[v]>dfn[u],则为桥,这样我们就可以知道图中桥的数目了。对于每一次query,可以考虑dfs树,树边肯定是桥,然后连 上u,v这条边之后,就会形成一个环,这样环内的边就不是割边了,所以只要找到u,v的LCA,把这个路径上的桥标记为否就可以了。const int ma

2016-06-24 16:10:01 687

原创 poj1470Closest Common Ancestors(LCA模版)

就是一个板子,sum[lca(u, v)]++就好了。const int LOGN = 11;const int maxn = 1 << LOGN;int head[maxn], nxt[maxn], pnt[maxn], ecnt;int sum[maxn], mark[maxn];int dep[maxn];int fa[LOGN][maxn];void addedge(int u,

2016-06-24 14:09:58 666

原创 poj3310Caterpillar(树直径)

1.连通性 2.树 3.求直径struct UNION { int F[101]; void init(int n = 0) { memset(F, -1,sizeof F); } int find(int u) { return F[u] == -1?u:F[u] = find(F[u]); } bool

2016-06-23 15:36:30 603

原创 poj1659 Frogs' Neighborhood(havel算法)

实质就是贪心,从度数大的开始。struct node { int deg; int id; bool operator < (const node& rhs) const { return deg > rhs.deg; }}p[11];int mp[11][11];void solve(int n) { bool flag = true;

2016-06-23 14:53:19 375

原创 poj1419Graph Coloring(一般图最大独立集或着最大团)

一般图的最大独立集和最大团是等效的。图G = (V, E),其补图G’。G的最大独立集等价于G’的最大团。度娘 一般的做法就是搜索。// 最大独立集做法vector<vector<int> > G;int n, m;int color[123];vector<int> rec;int maxnum;void dfs(int u,int _count) { if (_count

2016-06-23 13:30:05 3801

原创 uvaLive6044 Unique Path(双连通分量的应用)

题意无向图中,求有多少对节点之间的路径是唯一的且边部重合。题目中有详细解释。分析给的几个例子很明确了。只有树结构才有路径不重合。const int maxn = 1e4 + 10;int dfn[maxn], low[maxn], depth;bool in[maxn];bool mark[maxn];vector<vector<int> > G;stack<int> st;void

2016-06-22 20:23:46 398

原创 uva610 Street Directions(无向图桥的应用)

题意有一张道路交通图,每条边都是双向的,且连通。现在想尽量把一些多的道路改成单向的,且任意两点是可达的,输出改造后的道路图。分析同一个双连通分量里面的边都是可以通过重定向使得相互可达,可以改成单向边。桥边就只能是双向的了。const int maxn = 1010;int dfn[maxn], low[maxn], depth;int belong[maxn], block;stack<i

2016-06-22 19:50:29 430

原创 lightoj 1168-Wishing Snake(Tarjan的应用)

题意从起点出发,一条路径经过所有点。分析因为是有向图,且点是可以重复经过的,所以就会想到强连通分量,分量里面的点是相互可达的,可以看成一个点,这样就可以缩点了。缩点后的图形成一条简单的链且链头是0号点即可。int nCase = 0;int dcmp(double x){//精度正负、0的判断 if (fabs(x) < eps) return 0; return x < 0

2016-06-22 16:00:34 461

原创 lightoj1321Sending Packets

传送门题意一个大小为s的数据包需要在一张图上从0点传送到n-1点去,每条边有个传输成功的概率p<u,v> = p<v, u>。开始是先传送1的数据,如果成功到达n-1点的话,那么这条路就同了,剩下的数据就可以一直用这条路径来传递而且成功率为1.0。如果没能成功到达,就继续传送1的数据,直到成功为止。求最小传输完的时间期望。分析只要成功传输一次,剩下的就能快速传输,不计时间。那么求最

2016-06-09 23:08:55 560

原创 poj3281Dining

传送门题意有N头牛,F种吃的,D种喝的。每头牛都有自己钟意的多种食物和饮料。但是每样只能选一个。每种食物和饮料对外只提供一次。比如A,B都喜欢C这种食物,如果A要了,B就不能再选用。问最多有多少头牛可以同时享用自己钟意的食物和饮料。分析建立超级源点s和汇点t。然后将牛拆点,放在中间如:s->F[i]->N[k]->N[k + N]->D[j]->t这样建立图,每条边的容量为1即可,然后就是最

2016-06-09 22:33:08 411

空空如也

空空如也

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

TA关注的人

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