
图论
文章平均质量分 83
guognib
这个作者很懒,什么都没留下…
展开
-
hdu4786 Fibonacci Tree(2013 成都 ),确定上下界,生成树
思维题确定上下界,1边最少l个,最多r个,根据树的构造过程,必定可以用1边替换0边从而可到达1边l到r的个数参考:http://blog.youkuaiyun.com/kk303/article/details/16368165//#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include原创 2013-11-17 12:02:31 · 1364 阅读 · 0 评论 -
uva 11624 Fire
注意:(1)加上火之后,预处理出每个格子的最早着火时间,当Joe走到格子时,进行判断能否走即可。(2)刚开始的着火点有多个,如何同时求在多个着火点的情况下的最早着火时间。考虑建造一个超级源,连向出始得着火点,则一次广搜即可。思考:每个着火点的蔓延过程是相互独立的,且每个格子最小着火时间即所有着火点蔓延到该格子时间的最小值。//#pragma warning (disable:原创 2014-03-21 13:53:56 · 811 阅读 · 0 评论 -
zoj 3780 Paint the Grid Again 拓扑排序
表示完全没想到是拓扑,而且原创 2014-04-17 16:15:26 · 585 阅读 · 0 评论 -
二分图学习
http://dsqiu.iteye.com/blog/1689505#comments(本篇文章中的:增广路定理,应只是用于二分图,(奇环时不成立))http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.htmlhttp://blog.youkuaiyun.com/lin375691011/article/details/18908原创 2014-04-03 11:30:36 · 701 阅读 · 0 评论 -
HDU 4571 Travel in time (SPFA 或 dp)
HDU 4571大概题意:n个点(解法:容易看出应该用spfa和dp来解。关键时对visit和pass点的处理。通过floyd预处理出visit每个点对之间的最小边消耗。然后,加一个超级源点和一个超级终点。超级源点负责pas点s能够到达的点,超级终点负责那些能越过e的点由于visit的点的moneyp值必须严格升序所以也可以拓扑之后dp不能用dij,因为本题时求最长原创 2014-05-08 13:54:15 · 1088 阅读 · 0 评论 -
图论算法模板整理
转载:图论算法模板整理//无向图求割点int pre[maxn], low[maxn], dfs_clock;vector G[maxn];int iscut[maxn];int dfs(int u, int fa) //求出所有点i是否为割点iscut[i]{ int lowu = pre[u] = ++dfs_clock; int child = 0;转载 2014-04-24 14:02:03 · 724 阅读 · 0 评论 -
hdu 4858 项目管理 图分治 (复合算法)
hdu 4858 项目管理题意:给n(2种操作。操作1:点x的值,加addx。操作2:输出x点的临点的val和。分析:简单的优化操作1或操作2是不行的。法一:针对点的度将图中点分为两类点。对于度大于sqrt (n)的点为重点,对于小于等于sqrt(n)的点为轻点。 重点的个数小于sqrt(n)个。针对重点和轻点分别处理。法二:也可考虑每个点,将其临点分类原创 2014-07-28 22:58:55 · 1186 阅读 · 0 评论 -
hdu 4857 逃生 拓扑排序+优先队列,逆向处理
hdu4857 逃生题目是求拓扑排序,但不是按照字典序最小输出,而是要使较小的数排在最前面。一开始的错误思路:给每个点确定一个优先级(该点所能到达的最小的点),然后用拓扑排序+优先对列正向处理,正向输出。这是错误的,如下样例:15 45 24 32 13 1正确的解法:是反向建边,点大的优先级高,用拓扑排序+优先队列,逆向输出序列即可。根据每对限制,可确原创 2014-07-28 22:42:51 · 1069 阅读 · 0 评论 -
uva La 4255 Guess (拓扑排列)
uva La 4255 Guess (拓扑排列)拓扑排列适用于DAG有向无环图。构造所有节点之间的单向边。具体问题中,抽象出点和边(单向边),单向边对应于具体的点之间的大小关系或需求关。构造出图后,问题中的所有的关系都可以用点之间的有向边表示。此题中。(1)将每个数字构造成点时,不易表示。将前缀和构造成点,而所有的区间和都可以有两个前缀的差得到。则由所有区间和正原创 2014-03-21 12:08:48 · 1255 阅读 · 0 评论 -
cf 236 div2 E Strictly Positive Matrix 矩阵阶乘和图上路径(计数)(可达)(最优值)问题
402E - Strictly Positive Matrix / 403C - Strictly Positive MatrixLet's look at the matrix a as a connectivity matrix of some graph with n vertices. Moreover, if aij > 0, then we have directed原创 2014-04-14 16:58:28 · 1953 阅读 · 0 评论 -
POJ 1041 John's trip 欧拉回路(输出路径)
说出无向图的欧拉回路的路径使用Fleury算法(1)其实就是dfs,标记边,逆序输出(2)保证字典序最小,则每次拓展边时,优先选择边值较小的即可。(3)因为是逆序输出,所以保存到stack中,在弹出。下面是种边的储存法的解法:#include #include #include #include #include #include #include #incl原创 2014-03-19 15:05:26 · 644 阅读 · 0 评论 -
hdu4781Assignment For Princess(2013 成都)构造题
参考:http://blog.youkuaiyun.com/diary_yang/article/details/16368039首先所有回路的边值和都为%3==0,至少有一个回路则先构造一个大的回路,将所有的点包含在内,n点,n边,由于n+3然后再此图的基础上加边,并保证仍然满足要求即可。若找不到给定值的边,则print-1ps:(1)题目10 2/7可是却给了个n=6,m=8的样例原创 2013-11-18 10:32:12 · 1147 阅读 · 0 评论 -
bnu 33971 Funny Car Racing (spfa)
类似最短路#include#include#include#include#include#include#include #define REP(i, n) for(int i=0; i<n; i++)#define FF(i, a, b) for(int i=a; i<b; i++)#define FD(i, a, b) for(int i=a; i>=b; i--)原创 2013-11-07 21:54:17 · 1095 阅读 · 0 评论 -
hdu4085 Peach Blossom Spring (斯坦纳树,状态dp)spfa
(1)集合中元素表示(1(2)注意dp[i][ss] = min(dp[i][ss], dp[i][rr | s[i]] + dp[i][(ss ^ rr) | s[i]]);,后面的要 |s[i],保证状态的正确(3)INF初始化CLR(dp, 0x3f)(4)注意斯坦纳树状态理解,分层松弛的理解参考:http://endlesscount.blog.163.com/blog/s原创 2013-10-29 09:18:29 · 1535 阅读 · 0 评论 -
HDU 4284 Travel(12年天津online floyd + tsp状态DP)
参考:http://blog.youkuaiyun.com/acm_cxlove/article/details/7963286floyd + tsp(1)如果没有点0,将其加入,并设c[],d[],都为0即可(2)dp[i][j]表示从0开始经过集合j总的点最后在i点的最大钱数(3)最后判断dp[i][ALL]遍历了所有的点后,位于i点,判dp[i][ALL]和dis[num[i]][0]的原创 2013-10-27 17:22:10 · 1136 阅读 · 0 评论 -
HDU 3760 Ideal Path (bfs,分层)
HDU 3760 Ideal Path (bfs,分层)此题的自环不存即可,重边都存起来,并不影响结果分层的过程也可用bfs,但要注意取每层最小值时,取需取该层全部节点向下边值的最小值#include#include#include#include#include#include#include#include#include#include#define REP(原创 2013-11-22 23:22:20 · 1039 阅读 · 0 评论 -
csu 1356 Catch (判断奇环)
csu 1356 Catch题意:给定n个点,m条边的无向图(没有重边和子环)。从给定点出发,每个时间走到相邻的点,可以走重复的边,相邻时间不能停留在同一点,判断是否存在某个时间停留在任意的n个点。分析:(1)首先,和出发点的位置没有关系。因为可以走重复的边,且时间没有限制大小。(2)图必须是联通的(3)1)图为2-0-1-3从0点出发(时间为0),一个时间原创 2014-03-17 19:13:01 · 1082 阅读 · 0 评论 -
欧拉回路 hdu1878
无向图的欧拉回路判断裸题,(不允许有孤立点)要求图是连通的,且每个点的度为偶数个。dfs://#pragma warning (disable: 4786)//#pragma comment (linker, "/STACK:16777216")//HEAD#include #include #include #include #include #include #i原创 2014-03-18 15:01:37 · 557 阅读 · 0 评论 -
欧拉路径 hdu 3018 Ant Trip
给定一个无向图,每条边只走一次,可以有多个出发点,最多要多少个出发点?(不考虑孤立点)即找至少需要多少个欧拉路径首先判断联通分量。再在每个连通分量中,奇数度点个数为0,需要出发点1个(欧拉回路);奇数度点位非0个(记为cnt),需要出发点cnt / 2个一个连通图(无向图)中,奇数度点的个数为偶数个。证明:简单说,所有点的度数之和等于边的个数的2倍,为偶数,所以奇数度点原创 2014-03-18 16:03:49 · 629 阅读 · 0 评论 -
Codeforces Round #277 (Div. 2) D 计数问题,划分等价类
Codeforces Round #277 (Div. 2) D:原创 2014-11-17 20:29:41 · 844 阅读 · 0 评论