图论
文章平均质量分 77
sky-edge
这个作者很懒,什么都没留下…
展开
-
CDOJ 1152 小panpan学图论 Floyd
就是说,现在有一个floyd的程序,这个程序想求一个无重边无自环的无向连通图,且边权均为1的图的所有点对的最短距离但是小panpan只选了k个点来进行更新,程序如下d[i][j] // i,j之间的最短距离a[i] // 小panpan事先选好的点for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) {原创 2016-08-01 20:12:57 · 387 阅读 · 0 评论 -
HDU 5438 Ponds 拓扑序+并查集/DFS
就是给一个图,每个点有权值,边没有。然后会先依次删除度数首先删点就是拓扑序来删,然后求连通块可以DFS或者BFS或者并查集都可以。训练时刚结束后,队友改了改,过的,直接邻接表(当然是vector存),拓扑序+BFS求连通块过掉的。嗯,然后,去网上学了一发链式前向星,然后并查集搞连通块的,但我不清楚那些人用了链式前向星了,还要用两个数组来保存所有的边在并查集的时候用,链式前向星就可以遍历原创 2016-03-08 22:24:18 · 323 阅读 · 0 评论 -
Aizu 2677 tarjan离线求lca
给一个根为1的无权树,然后它要人工BFS这棵树,就是按BFS的顺序去走它,问一共要走多少步,假设一条边走一步首先就BFS这个树,然后根据出队顺序得到我们走的顺序,假设为a,b,c,d,e,f,,,,然后,呃,a肯定是1,所以我们就是从1走到b,然后b到c,c到d,所以我们要求他们之间的距离,树上两点的距离显然就是,d[u]+d[v]-2*d[lca(u,v)]。d[u]表示它的深度(走到根原创 2016-07-16 03:40:45 · 325 阅读 · 0 评论 -
POJ 3259 SPFA
判有没有负环然后用SPFA搞就行,紫书上只说了可以用spfa搞,加个结点,但是没说具体怎么搞,后来现学了一发就行,加个0号节点,然后往其他所有点连一个权值为0的边,然后从0号节点跑spfa就行貌似还有一种DFS版的spfa,也可以判负环,但是那个只能从某个定点出发啊,感觉限制性还是挺大的正好也收一个spfa判负环的版#include #include #include #in原创 2016-07-15 18:04:49 · 263 阅读 · 0 评论 -
CodeForces Gym 100735G 二分图匹配
就是给你一个字符串,和一些正方体,每个正方体的六个面上都标有字母或者数字,然后问你能否选一些正方体,通过某种摆放,使得他们摆成一排后组成的那个字符串据说是裸的二分图匹配,但是我这种智障就是没看出裸来啊,果然图论题做的太少太少,然后看别人代码又短又快,总以为是暴力,然后题意也没说这些正方体可以怎么操作,迷的一笔还是说下方法吧,字符串的每个字符为左边的点,每个 正方体为右边的 点,然后对于坐标原创 2016-07-21 01:01:41 · 632 阅读 · 0 评论 -
POJ 1860 Currency Exchange SPFA判回路
就是有N种硬币,M个兑换所,每个兑换所可以把A兑换成B或者把B换成AA B Rab Cab Rba Cba可以表示一个兑换所,如果是x个A,则可以兑换成(x-Cab)*Rab个A,如果是x个B,则可以兑换成(x-Cba)*Rba个A,然后某人现在有V个S种货币,问他能否在经过某些兑换后,最后能得到比V多的S种货币这个题其实是一个判断回路的问题,类似于判断负权回路,这个题判断的是正权回路原创 2016-07-23 19:22:03 · 298 阅读 · 0 评论 -
POJ 1062 昂贵的聘礼 最短路
Description年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。"探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币原创 2016-07-23 21:42:17 · 260 阅读 · 0 评论 -
POJ 2253 Frogger dijkstra
就是从某点到某点找一条路径,使得这条路径上的最长的长度最短这个问题,跟最短路的性质类似,所以也可以这样去搞,if (!vis[j] && max(dist[k], graph[k][j]) { dist[j] = max(dist[k], graph[k][j]); //path[j] = k; }就是dist[j]存储从出发点到该点的路径上的最长原创 2016-07-25 01:33:27 · 249 阅读 · 0 评论 -
poj 3320 Jessica's Reading Problem 二分图最小边覆盖
就是给一个h*w的矩阵,然后矩阵上有些地方有点,其他地方没有,现在要一些天线来覆盖他们一个天线能覆盖两个相邻(上下左右相邻)的点(当然,如果一个点没有和它相邻的,那也需要用一个天线来覆盖)然后问最少需要多少天线来覆盖所有点二分图的最小边覆盖无向图的最小边覆盖就是选取最少数量的边,使得图中的每个点都是所选边里的至少一条边的端点二分图最小边覆盖就是顶点数(只取某一部的)-最大匹配数原创 2016-07-25 23:55:07 · 301 阅读 · 0 评论 -
POJ 3041 Asteroids 二分图最小点覆盖
给N和K,N代表N*N的矩阵,K代表接下来有K个格子,每个格子上有一个小行星,他的武器每次可以干掉某一行或者某一列的所有小行星,然后问最少使用 多少次该武器最小点覆盖:就是对于一个图,选取最少数量的点S,使得对于所有的边,都至少有一端点是S中的点König定理:二分图中的最小覆盖点数==最大匹配数这个题建图,每行对应为左边的每个点,每列对应为右边的点,然后如果(i,原创 2016-07-25 22:22:33 · 365 阅读 · 0 评论 -
POJ 1716 Integer Intervals 差分约束
题意是给你n个区间,n每个区间有左右两个端点,a,b,a,b然后要你选一个点集,使这个点集在每个区间中至少有2两个点,求这个点集的点的个数的最小值做法是贪心或者差分约束系统贪心:就是说把所有区间按右端点升序排序,然后对于第一个区间,取最右边的那两个数,点数+2,因为越靠右越有可能被后面用到,从而使点数尽可能少然后记录上次取的那两个数a1,a2,然后对于下一个区间,首先看原创 2016-07-30 18:13:08 · 398 阅读 · 0 评论 -
POJ 1201 Intervals 差分约束
是上一个 POJ 1716的加强版,上一个是每个区间至少有两个,这个是对于第i个区间,至少有ci个给你n个区间,n每个区间有左右两个端点,a,b,a,b然后要你选一个点集,使这个点集在第i个区间中,至少有ci个个点,求这个点集的点的个数的最小值做法还是贪心或者差分约束系但是贪心要优化一下先说差分约束吧dist[i]表示[0,i)中包含的数的个数dist[原创 2016-07-30 19:31:04 · 316 阅读 · 0 评论 -
CDOJ 1144 Big Brother 二分图匹配
二分图匹配#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 202#defi原创 2016-07-31 15:51:41 · 404 阅读 · 0 评论 -
CDOJ 1150 排名表 拓扑排序
http://www.acm.uestc.edu.cn/#/problem/show/1150就是说有n个人,编号1-n,他们有一个排名表,然后已知m条信息,每条信息为a b,表示a在b前面然后叫你写出一个满足这m个条件的排名表,如果有多个的话,尽可能使1的名次最小,这个条件下,尽可能使2的名词最小,依次类推然后从1-n输出每个人的名次 (确实,被这个坑了一次,眼瞎然后原创 2016-07-31 17:06:59 · 363 阅读 · 0 评论 -
CDOJ 1146 秋实大哥与连锁快餐店 Prim 最小生成树
嗯,题意就是说,平面坐标系上有n个点,它们可以形成一个完全图,距离就是两点的欧几里德距离然后其中有一些点是旗舰店,然后现在想连一些边,使得所有的点都与至少一个旗舰店连通,然后问最小的边权和显然就是最小生成树了但是这是稠密图(其实我觉得即使稠密图,Kruskal的表现应该也很好,因为并查集部分的操作应该是近乎常数的吧),所以prim会更好开始时用的Kruskal,直接MLE了,发现是原创 2016-07-31 19:25:32 · 601 阅读 · 0 评论 -
CDOJ 1147 秋实大哥带我飞 最短路径条数 dijkstra就可搞
啊,就是说给你一个图,让你求从1到n的最短路径条数,模1e9+7图的边权可能为0或者正数,边和点都可以重复走最短路径条数为无穷则输出-1啊,那个边权全为正的情况好说,边和点也不可能重复走就是如果边权为0的话,它可以沿着这个边无限次数的来回走,然后就是无穷了嗯,看题解什么队列搞阿,网上搜了都是DFS,,后来感觉dijkstra就可以搞阿,,看到网上果然有一个这么搞的,代码太丑就没原创 2016-07-31 22:54:40 · 845 阅读 · 2 评论 -
CDOJ 1145 韩爷的情书 欧拉路径
呼,,,欧拉路径,,终于弄懂了。。什么坑爹的fluery算法,,md,,欧拉路径本身的一个算法就很简洁而且非常准确重边,自环,都支持,有向图,无向图都可以,当然,貌似混合图的话得用最大流呃,这个算法的前提是已知有一条欧拉路径了,判断有没有欧拉路径很好想,就不赘述了void Euler(int u){ for (int v = minv; v <= maxv; ++v) {原创 2016-08-01 18:08:03 · 528 阅读 · 0 评论 -
UVA 315 Network tarjan 双连通分量
题意很简单,就是tarjan求割点个数训练时直接网上找了个版搞过去了。。现在来学习学习tarjan,然后把这个题补一遍嗯,,求割点和桥基本上明白了,后面求删除割点后的双连通分量,或者删除桥后的双连通分量个数什么的,还不是很懂,继续再看~另外,这里也讲一个关于链式前向星的小知识吧,刚刚学到的,因为,求桥的时候,是直接在那条边上标记为桥,但是边是双向的,一条无向边在链式前向星中有两原创 2016-08-02 00:48:26 · 668 阅读 · 0 评论 -
HDU 5093 Battle ships(二分图匹配)
Battle shipsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 815 Accepted Submission(s): 292Problem DescriptionDear contesta原创 2015-07-20 00:46:23 · 471 阅读 · 0 评论