图论
文章平均质量分 69
BSOD_aura
这个作者很懒,什么都没留下…
展开
-
HDU 4463 最小生成树 裸题
2012杭州签到题。。。 #include "stdio.h" #include "string.h" #include "math.h" int main() { int hash[101]; int w,i,j,n,a,b,k; double ans,min; double dis[101],map[101][101]; int x[101],y[101]; whi原创 2013-10-28 19:34:14 · 582 阅读 · 0 评论 -
POJ 3126 水 图
素数表 离散化 建图 #include "stdio.h" #include "string.h" #include "math.h" #include "stdlib.h" int prime[10010],data[10010]; int n,end,start; int map[2010][2010],dis[10010]; void make_map(int w) {原创 2013-10-28 19:07:31 · 496 阅读 · 0 评论 -
POJ 1975 传递闭包
转化成有向图 先floyd求出之间的大小关系 然后计算每个点i的 比它重的和比它轻的 若比一半大 ans++; #include "stdio.h" #include "string.h" #include "math.h" #include "stdlib.h" int main() { int t,n,m,a,b,k,ans,i,j; int map[101][1原创 2013-11-11 17:59:37 · 814 阅读 · 0 评论 -
HDU 1428 最短路+记忆化搜索
他考虑从A区域到B区域仅当存在一条从B到机房的路线比任何一条从A到机房的路线更近(否则可能永远都到不了机房了…” 这句话一定要理解清楚。就是说,对于当前位置,如果下一个状态与终点的最短距离大于或者等于当前位置到终点的最短距离,那么这个下一个状态是不可取的!到此,就能明白,此题就是求出所有点与终点的最短距离,然后再从起点进行记忆化搜索。 #include "queue" #include原创 2014-04-26 14:43:51 · 616 阅读 · 0 评论 -
蓝桥杯 历届试题 城市建设 最小生成树
把码头作为0点处理。 首先判断不建码头是否可以生成最小生成树 最小生成树用kruskal算法,若对于代价 若可以:Min(最小生成树(不建码头),最小生成树(建码头)); 若不可:最小生成树(建码头) #include "stdio.h" #include "string.h" #include "algorithm" using namespace std; int fathe原创 2015-04-09 17:15:21 · 1813 阅读 · 0 评论 -
HDU 2586 LCA离线算法 tarjan算法
LCA tarjan算法模板题 题意:给一个无根树,有q个询问,每个询问两个点,问两点的距离。 用tarjan离线算法算出每个询问的两点的最近公共祖先 ans[i]=dis[x[i]]+dis[y[i]]-2*dis[z[i]]; // x[i],y[i]分别存储每次询问的两点,z[i]存储这两点的最近公共祖先 #include "stdio.h" #include "stri原创 2015-07-20 09:22:46 · 626 阅读 · 0 评论 -
HDU 2874 LCA离线算法 tarjan算法
给出N个点,M条边,Q次询问 Q次询问每两点之间的最短距离 典型LCA 问题 Marjan算法解 #include "stdio.h" #include "string.h" struct Edge { int to,next,len; }edge[20010]; struct Ques { int to,next,index; }ques[2000010];原创 2015-07-20 14:59:12 · 599 阅读 · 0 评论 -
HDU 1269 强连通模板 Tarjan算法
求强连通量,为1输出Yes否则No Tarjan算法模板 具体讲解:https://www.byvoid.com/zht/blog/scc-tarjan #include "stdio.h" #include "string.h" struct Edge { int v,next; }edge[100010]; int head[10010],stack[10010],dfn原创 2015-07-20 18:45:02 · 849 阅读 · 0 评论