----图论----
文章平均质量分 63
beihai2013
这个作者很懒,什么都没留下…
展开
-
增广路算法(网络流) HDU1532 Drainage Ditches
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=11549题意&思路:网络流的版题,基本照着小白书打的。怎么实现增广路,通过正向和反向流量,不断寻找增广路(从起点开始,宽搜压入当前节点的下一节点,用书上术语即层次比当前节点大1的点,类似Dijkstra),当不存在到终点的增广路时,退出。源码:#inc原创 2015-04-22 15:42:15 · 516 阅读 · 0 评论 -
Codeforces India Hack2016 653ABCED
Codeforces India Hack2016 653ABCED 通过数:2 Rating:1288 倒数第二题是后缀数组,倒数第一题没看,哪一天再厉害一点再做吧。A: 简单题#include <bits/stdc++.h>using namespace std;#define pb push_backconst int MAXN = 1000 + 5;int a[MAXN],原创 2016-04-13 19:15:21 · 349 阅读 · 0 评论 -
Codeforces Round 353 div2 675ABCDE
Codeforces Round 353 div2 通过数: 2 A:#include <bits/stdc++.h>using namespace std;int main(){ int a, b, c; while(scanf("%d%d%d", &a, &c, &b) != EOF) { if((c - a) < 0 && b > 0) printf(原创 2016-05-26 10:59:25 · 259 阅读 · 0 评论 -
Codeforces Round 347 div1 abc 662BD 663A
Codeforces Round 347 div1 通过数: 0 A: /* 就是整数划分之类问题 注意几个坑点 负数不是都取-1,可能取n来满足过多正数的条件自己的解法是在选取正数都取1(负数都取-1),负数(正数)需要满足等式的最大值。这样正数(负数类似)可以分成三个部分一是值为n的部分,一是中间值部分,一是值为1的部分遗憾的是赛中中间值部分值大于n时未原创 2016-04-19 21:07:24 · 603 阅读 · 0 评论 -
POJ 2499 第k小最短路
/* 简单A*一直搜就可以 坑点是s=t时,假设k=1,不能直接返回0,因为要求必须走过路程 */#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <string>#include <algorithm>#include <iostream>#include原创 2016-06-09 17:47:19 · 357 阅读 · 0 评论 -
HDU 4460 SPFA
HDU 4460 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4460 题意: 一些点(<=1e3)一些边(<=1e5)。问任意两点最大距离多少。若不联通输出-1. 思路: 原来spfa一直搞错了,用优先队列的叫dij,不用的叫spfa……有时候加优先队列还会慢,因为有个O(logn)的复杂度在那里,而且一个点因为不同的距离值会入队多次原创 2015-11-08 21:06:35 · 318 阅读 · 0 评论 -
UVA 10537 最短路
UVA 10537题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=17&page=show_problem&problem=1478题意:给一个图,图中点的编号是大写字母或者小写字母。一个人身上带有权值。规定经过小写字母编号结点,权值-1;经过大写字母编号结点原创 2015-09-03 14:46:40 · 346 阅读 · 0 评论 -
UVA 1416 最短路
UVA 1416题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=447&problem=4162&mosmsg=Submission+received+with+ID+16031798题意:给一个图n个点,m条边,n ,m 。原创 2015-09-02 12:43:58 · 347 阅读 · 0 评论 -
UVA 10917 最短路
UVA 10917题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=1858&mosmsg=Submission+received+with+ID+16031317题意:一个图,问有多少种不同的方案从点2走到点1原创 2015-09-02 10:19:44 · 331 阅读 · 0 评论 -
UVA 11374 最短路
UVA 11374题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=2369&mosmsg=Submission+received+with+ID+16028375题意:给一个图n个点,起点S,终点E。有一些原创 2015-09-01 20:46:56 · 310 阅读 · 0 评论 -
floyd UVA544 Heavy Cargo
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19666题意:从一个点到另一个点,每条路径上边最小值,所有路径的这个最小值的最大值思路:floyd,gmin后gmax。顺便学习了下map,把string做数组下标进行调用。查询某个键是否存在有两种方法,第一是map.count(key),第二是先map.cl原创 2015-04-22 22:04:22 · 519 阅读 · 2 评论 -
HDU 5607 矩阵快速幂
HDU 5607 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5607 题意: 给一个n个点有向图(<=50),有m条边(<=1000). 现在已知对于一个点,下次可以等可能的走到有出边的下一个点。 从一个点出发,求最后走到某个点的概率x/y.输出x * y^(1e9+5) 思路: 妥妥的用矩阵快速幂优化一个转移矩阵没什么好说的。原创 2016-01-10 13:13:14 · 503 阅读 · 0 评论 -
Codeforces 609E LCA倍增
Codeforces 609E 题目链接: http://codeforces.com/contest/609/problem/E 题意: 给n个点(<=2e5),m条边(n-1 <= <= 2e5),问对于每条边,做一个最小生成树树的权值。 思路: 增量最小生成树,就是先构造一个最小生成树。然后对每条边找所在环上最大的边删去。 实现用LCA实现。关于LCA,刚开始用了RMQ来做,怎么原创 2015-12-25 11:26:38 · 641 阅读 · 0 评论 -
HDU 5452 LCA
HDU 5452题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5452题意:给一个无向图G。指定无向图的一棵生成树T。现要求删除最少的边使得无向图不连通,要求T上删除且只能删除一条边。输出删除的最少边数。思路:比赛的时候套最小割版、套网络流版、最小生成树版、连通分量版……你知道这是套不出来的。实际上,发现最后删边,原创 2015-09-21 11:12:29 · 331 阅读 · 0 评论 -
二分匹配 HDU1469 COURSES
HDU1469 COURSES题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17820题意:一些课程给定能参加的学生名单,问是否有一种分配让每个课程都有一名不同的学生参加。思路:二分模板题。通过search函数递归寻找是否存在增广路,若存在则标记点并匹配值加1。本题错误点是n和p的输入输反我也是醉了。原创 2015-04-21 16:43:08 · 413 阅读 · 0 评论 -
Kruskal & Prim 最小生成树HDU1863 畅通工程
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863题意:求构成一个连通图的最小代价,一看就是最小生成树。思路:最小生成树版题。想用use数组表示两个点是否用过,后来发现这样行不通,因为会忽略链接两个连通子图的边。源码:Kruskal:#include #include #include #include #原创 2015-04-25 10:31:39 · 354 阅读 · 0 评论 -
次小生成树变体 HDU4081 Qin Shi Huang's National Road System
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=24956题意:给一些点和每个点上的权值。要求把所有路都连通。问取两个城市的人口和A,然后两个城市之间零代价连通,剩余路的长度为B,求A/B最大值。思路:先最小生成树。如果用Kruskal,则最后枚举小树上去掉哪条边,然后分别在边的两侧找出最大的人口,求和为原创 2015-04-28 09:25:03 · 359 阅读 · 0 评论 -
Hopcroft-Karp 二分图HDU2389 Rain on your Parade
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2389题意:一些人的坐标和速度,一些雨伞位置,规定人可以运动的时间,人不分高低贵贱。求最优的匹配方案使得尽可能多的伞有人。思路:二分图版题,由于数据量达到1e3使用HK算法。初始化处理人为X集,雨伞为Y集,通过计算距离求得边。然后求最大匹配。学习了HK算法,其实是增加了一个源点和汇点,然后把原创 2015-05-01 10:45:01 · 336 阅读 · 0 评论 -
二分图 CSU1574 Amanda Lounges
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=158908题意:给一些点和一些边。边的权值可为0,1,2,分别表示边的两个结点上取0个、1个、2个。存在矛盾的答案,即输出impossible。问合法情况下,最少取多少个点。思路:在输入过程中初始化use数组,-1为不能使用,1为使用。此时有矛盾判断。原创 2015-05-01 08:36:46 · 449 阅读 · 0 评论 -
vijos 1427机密信息 LCA
题目链接:https://vijos.org/p/1427题意:给文件夹之间的包含关系,0代表根目录。问从s文件夹到t文件夹,读取他们文件夹名的长度,并询问最少耗时。已知打开一个文件夹耗时问为该文件夹下子文件夹的数量。思路:最近公共祖先,话说状态真的好渣。需要注意是求时间会求错,因为比如当s是t 的祖先时,是不需要打开s或打开t的。ie.需要在时间上做特殊判断。源码:#原创 2015-06-29 20:08:31 · 379 阅读 · 0 评论 -
Codeforces 8B Obsession With Robot 简单图遍历
题目链接:http://codeforces.com/problemset/problem/8/B题意:问从起点到终点的路径是否为最短路径。假设每个格子不是障碍就是空格。思路:具体实现开一个较大的vis数组、然后从中心开始行走即可,关键是题意理解。空格是障碍,说明俩空格之间可达是看空格值而不是空格相接的边的的值,因此推出只要达到的当前空格有相邻空格访问过、并且相邻空格不是之前来原创 2015-07-02 09:04:56 · 657 阅读 · 0 评论 -
HDU 4409 大模拟 + LCA
HDU 4409 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4409 题意: 大模拟看题很关键。 思路: 大模拟+LCA。 坑点 1)自己不能是自己的祖先。 2)对于Mr.X,他的兄弟数为1。 源码: //#pragma comment(linker, “/STACK:1024000000,1024000000”)inclu原创 2015-09-25 00:08:41 · 334 阅读 · 0 评论 -
HDU 5438 topo
HDU 5438题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5438题意:一些点一些边。每次去除只有一条边和该点相邻的点,并把该点的边全删除。问最后点数为奇数个的连通块里面点的权值和。思路:Topo,然后任意姿势求奇数个点的集合。并查集比较好实现,dfs亦可。你非要双连通缩点我也没有办法。源码:#includ原创 2015-09-17 08:28:39 · 262 阅读 · 0 评论 -
HDU 5444 中序遍历
HDU 5444题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5444题意:给一棵树。从左往右的命名结点。先给出这棵树的中序遍历序列。问对给定的结点编号a,怎么从根节点走到a,输出路径。思路:简单题。容易知道本题的数是一个二叉搜索树,即左子树节点值定小于根节点,右子树节点值定大于根节点。中序遍历一下即可。原创 2015-09-17 08:46:25 · 348 阅读 · 0 评论 -
11年福州 F 次小生成树变形 树形DP
单独练习的时候,做到最小生成树处理出来后,就不知道怎么处理了。关键是两个子树间的距离,不能在有效的时间复杂度内解决。实际上,对于一个最小生成树,两个子树间距离可以用dp来做。假设从root开始向下搜索,那么dp[root][u]表示root到u和以u为根节点的子树的最小距离,此处距离即是取的不在最小生成树中的原图的边。那么很容易发现是一个简单的树形DP过程。然后,如果对于两个子树呢?两个子树是原创 2016-06-13 09:04:11 · 234 阅读 · 0 评论