HDU 3849 By Recognizing These Guys, We Find Social Networks Useful pid=3849" target="_blank" style="">题目链接 题意:说白了就是求一个无向图的桥 思路:字符串hash掉,然后双连通.要注意特判一下假设不是一个连通块.那么答案是0 代码: #include <cstdio> #include <cstring> #include…
By Recognizing These Guys, We Find Social Networks Useful Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on HDU. Original ID: 384964-bit integer IO format: %I64d      Java class name: Main   Social Network is popular these days.…
By Recognizing These Guys, We Find Social Networks Useful Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 2885    Accepted Submission(s): 726 Problem Description Social Network is popular these…
By Recognizing These Guys, We Find Social Networks Useful Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 2354    Accepted Submission(s): 613 Problem Description Social Network is popular these…
By Recognizing These Guys, We Find Social Networks Useful Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 3840    Accepted Submission(s): 987 Problem Description Social Network is popular these…
HDU 2460 Network 题目链接 题意:给定一个无向图,问每次增加一条边,问个图中还剩多少桥 思路:先双连通缩点,然后形成一棵树,每次增加一条边,相当于询问这两点路径上有多少条边,这个用树链剖分+线段树处理 代码: #include <cstdio> #include <cstring> #include <algorithm> #include <vector> using namespace std; #pragma comment(linke…
HDU 4005 The war pid=4005" target="_blank" style="">题目链接 题意:给一个连通的无向图.每条边有一个炸掉的代价.如今要建一条边(你不不知道的),然后你要求一个你须要的最少代价,保证无论他建在哪,你都能炸掉使得图不连通 思路:炸肯定要炸桥,所以先双连通缩点,得到一棵树,树边是要炸的,那么找一个最小值的边.从该边的两点出发.走的路径中,把两条包括最小值的路径.的两点连边.形成一个环.这个环就保证了最低代…
一道简单的双联通求桥的题目,,数据时字符串,,map用的不熟练啊,,,,,,,,,,,,, #include <iostream> #include <cstring> #include <cstdio> #include <map> #include <string> #include <algorithm> #define N 10001 using namespace std; int head[N],num,dfs[N],lo…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3394 思路:题目的意思是要求无向图中的冲突边和不需要边的条数,如果一个块中有多个环,则该块中的每条边都是冲突边,而不能形成环路的边则为不需要边.于是我们可以求点双连通分量(块),统计一个块中点数与边数的关系,如果点数大于边数,则为不需要边,如果点数小于边数,则为冲突边.需要注意的地方:Tarjan求点双连通分量的时候,将块出栈时,只能出到u的子节点v为止,因为u作为割点极有可能是该块与别块公用的,这…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4005 思路:首先考虑边双连通分量,如果我们将双连通分量中的边删除,显然我们无法得到非连通图,因此要缩点成树,对于树上的边,我们找到权值最小的边,从这条边的两个端点开始深搜,然后找分别一这两个端点为根的子树中第二权值小的边的最小值. http://paste.ubuntu.com/5954870/…
HDU 2242 考研路茫茫--空调教室 题目链接 思路:求边双连通分量.然后进行缩点,点权为双连通分支的点权之和,缩点完变成一棵树,然后在树上dfs一遍就能得出答案 代码: #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #include <vector> using namespace std; const int N = 10005;…
Warm up Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 3160    Accepted Submission(s): 718 Problem Description N planets are connected by M bidirectional channels that allow instant transport…
首先双连通缩点建立新图(顺带求原图的总的桥数,事实上因为原图是一个强连通图,所以桥就等于缩点后的边) 此时得到的图类似树结构,对于新图求一次直径,也就是最长链. 我们新建的边就一定是连接这条最长链的首尾,这样就将原图的桥降低了直径个. #include<iostream> #include<cstring> #include<cstdio> #include<vector> #include<algorithm> #include<map&…
九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11711577 题意:给定n个点,m条无向边 下面m行表示u , v ,边权值 求所有桥中最小的桥的权值,如不存在输出-1 若图一开始就不连通或最小权值为0则输出1 双连通求桥裸题 附赠一大波测试数据: #include <string.h> #include <cstdio> #include <vector> #define N 1010 #defi…
<题目链接> 题目大意: 给定一个连通图,每个点有点权,现在需要删除一条边,使得整张图分成两个连通块,问你删除这条边后,两联通块点权值和差值最小是多少. 解题分析: 删除一条边,使原连通图分成两个连通分量,所以删除的那条边必然是桥.为了得到所有的桥,我们对原图进行边双连通图缩点.然后对缩点后的新图,跑一遍树形DP,得到所有桥两端点权和的最小差值. #include <bits/stdc++.h> using namespace std; #define clr(a,b) memse…
<题目链接> 题目大意: 给你一个连通的无向图,问你删除每一条边后,是否能够出现一对(u,v),使得u,v不连通,且u<v,如果有多对u,v,则输出尽量大的u,和尽量小的v. 解题分析: 首先要明确,因为该图是连通的无向图,所以删除的边是桥才能够使至少两点不连通.但是对于删除桥的情况,如何输出尽可能大的u和尽可能小的v呢? 我们要知道,删除一个桥,是将整张图分成两部分,这两部分的点仍然是连通的,并且,由于题目要求u<v,且u尽可能的大,v尽可能的小,所以,我们可以推断出,u与n一定…
<题目连接> 题目大意: 给你一个(保证输入无重边,无自环)无向图,然后有下面Q条询问,每条询问为:问你u点与v点之间有几条(除了首尾两点外,其他点不重复)的路径.如果有0条或1条输出0或1,如果有2条以上,输出”two or more”. 解题分析: 我们可以用并查集判断两点之间是否有路径相连通,如果两点不连通,则直接输出0即可.至于判断两点之间有几条不重复的路径相连,则是通过这两点是否属于同一点双连通分量来判断.不过需要注意的是,我们应该排除只有两个点的点双连通分量这一特殊情况.所以综上,…
Alice get a string S. She thinks palindrome string is interesting. Now she wanna know how many three tuple (i,j,k) satisfy 1≤i≤j<k≤length(S) , S[i..j] and S[j+1..k] are all palindrome strings. It's easy for her. She wants to know the sum of i*k of al…
Intelligence System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1859    Accepted Submission(s): 799 Problem Description After a day, ALPCs finally complete their ultimate intelligence syste…
题意 ​ 给定一张 \(n\) 个点 \(m\) 条边的无向图,\(q\) 次询问,每次询问两边之间的必经之点个数. 思路 ​ 求两点之间必经之边的个数用的是边双缩点,再求树上距离.而对比边双和点双之后,我们不难发现点和边之间的对应关系,边双分量和点双分量的性质很多都是对称的. 边双 点双 两点之间至少有两条不共边的路径 两边之间至少有两条不共点的路径 边双间由桥边连接 点双内没有割点 边双间由桥边连接 点双间由割点连接 ​ 另外,一个点双也是一个特殊的边双,就像一个点仙人掌是一个特殊的边仙人掌…
题意 ​ 给定一张 \(n\) 个点 \(m\) 条边的无向连通图,加入一条边,使得图中权值最小的桥权值最大,如果能使图中没有桥则输出 \(-1\). 思路 ​ 先对原图边双缩点,然后变成了一棵树.在树上加一条边等价于使一条路径上的边都不是桥,那么原题转化为在树上删一条路径,使得最小的边最大.固定一条最小的边之后模拟即可. 代码 #include<bits/stdc++.h> #define FOR(i, x, y) for(int i = (x), i##END = (y); i <=…
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i…
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 基础并查集★ 1325&&poj1308 Is It A Tree? 基础并查集★ 1856 More is better 基础并查集★ 1102 Constructing Roads 基础最小生成树★ 1232 畅通工程 基础并查集★ 123…
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 基础并查集★ 1325&&poj1308 Is It A Tree? 基础并查集★ 1856 More is better 基础并查集★ 1102 Constructing Roads 基础最小生成树★ 1232 畅通工程 基础并查集★ 123…
强连通 迷宫城堡 Proving Equivalences Equivalent Sets Summer Holiday Intelligence System The King's Problem Hawk-and-Chicken Cactus 仙人掌图 [双连通]: 2242 考研路茫茫--空调教室 双联通缩点+树形DP 2460 Network 边双连通 3849 By Recognizing These Guys, We Find Social Networks Useful 双连通求桥…
刷题之前来几套LCA的末班 对于题目 HDU 2586 How far away 2份在线模板第一份倍增,倍增还是比较好理解的 #include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <stack> #include <queue> #include <…
转自:http://blog.csdn.net/shahdza/article/details/7779356 [HDU][强连通]:1269 迷宫城堡 判断是否是一个强连通★2767Proving Equivalences 至少加几条边让整个图变成强连通★3836 Equivalent Sets 至少加几条边让整个图变成强连通★1827 Summer Holiday 传递的最小费用★★3072 Intelligence System 传递的最小费用★★3861The King’s Proble…
=============================以下是最小生成树+并查集====================================== [HDU] How Many Tables 基础并查集★ 小希的迷宫 基础并查集★ &&poj1308 Is It A Tree? 基础并查集★ More is better 基础并查集★ Constructing Roads 基础最小生成树★ 畅通工程 基础并查集★ 还是畅通工程 基础最小生成树★ 畅通工程 基础最小生成树★ 畅通…
[图论01]最短路 Start Time : 2018-01-02 12:45:00    End Time : 2018-01-23 12:45:00 Contest Status : Running Current System Time : 2018-01-12 14:39:34 Solved Problem ID Title Ratio(Accepted / Submitted)   1001 最短路 51.85%(70/135)   1002 King 46.67%(35/75)  …
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:给一些点,用一些边把这些点相连,每一条边上有一个权值.现在要你破坏任意一个边(要付出相应边权值的代价),使得至少有两个连通块.输出最小代价值. 算法思路:这题坑多,要考虑仔细: 1.图是边双连通图,就做不到删除一边得到两个连通块,这种情况输出-1. 2.图是连通但不边双联通,就用tarjan找出桥中权值最小的,这里有个巨坑,如果桥最小的权值为0,这时根据题意,要输出1而不是0(看看题…