图论
#魔君#
算法比赛参与者
展开
-
POJ - 1797 Heavy Transportation
题目通道Solution 1Dijkstra algorithm#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#inc...原创 2019-04-15 17:19:06 · 91 阅读 · 0 评论 -
HDU 4725 The Shortest Path in Nya Graph 解题报告
题目大意给了若干个点,每个点分属于一个层,同层之间的点不能够直接到达,但是相邻层的可以到达,代价是c,现在在这个基础之上,给了若干条无向边,现在要求结点1到结点n的路径的最小代价。此题的难点在于建图现在我们将层这个概念变成实际意义上的结点,层这个虚拟概念正式成为两个结点,第r层,对应的结点编号是,n + u * 2 - 1 ,和, n + u * 2 。i 结点对应的层数是r,那么 令 i ...原创 2019-05-04 12:41:50 · 174 阅读 · 0 评论 -
Light OJ 1074 Extended Traffic 解题报告
Question Link题目大意n个点,每个点都有一个拥挤度,m条边,由 u 到 v 点的代价是 v 的拥挤度 减去 u 的拥挤度 的差 的立方, 由题意分析可知,这是一个有向图,接下来q个数字,num i ,这个数字 numi 代表结点,问由结点 1 到 numi ,的情况。如果不能联通,或者,到达他的代价总和,小于 3 则,输出 ?题目分析由于是立方,所以我们知道这个图的边是有负权的...原创 2019-04-29 19:01:07 · 184 阅读 · 0 评论 -
POJ 1182 食物链 解题报告
Question Link题目大意现在有 3 种动物,A,B,C,A吃B,B吃C,C吃A。现在告诉你 m 句话,其中有真有假,叫你判断假的个数 。当,当前语句和之前的语句由冲突的时候,我们将这句话视为假语句,如果当前语句和之前的语句没有冲突的时候,我们将这句话视为真语句。当然智障级别的判断,另外考虑。每句话开始都有三个数 D A B,当D = 1时,表示A 和B是同类,当D = 2时...原创 2019-05-05 16:45:04 · 292 阅读 · 0 评论 -
HDU 3038 How Many Answers Are Wrong 解题报告
Question LinkAC code#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<cstdi...原创 2019-05-05 17:34:12 · 106 阅读 · 0 评论 -
POJ 1251 解题报告 (最小生成树模板,kruskal 和prim)
板子题#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<cstdio>#include<...原创 2019-05-13 21:35:49 · 110 阅读 · 0 评论 -
POJ 1456 Supermarket 解题报告
Question Link题目大意有n个商品,利润为pi,在第di天之后过期,不包括di天。每天只能卖出一个商品。求最大的利润。题目解析优先安排利润高的商品,保证他能够卖出,但是希望他不要占据那么前的时间,这时才能给利润稍微没那么高的商品留出更多的选择余地,也就是说,利润次高的商品才能更有可能被选上。优先先安排价格高的商品,最好是放在保质期d那一天。如果已经被占(商品价格肯定比它高),往...原创 2019-05-06 19:46:37 · 118 阅读 · 0 评论 -
并查集的非递归和递归实现
code 防止爆栈空间int find(int x){ int p=x; while(p!=fa[p]) p=fa[p]; while(x!=p){ int tmp=fa[x]; fa[x]=p; x=tmp; } return x;}原创 2019-05-14 11:24:08 · 699 阅读 · 0 评论 -
POJ 1733 Parity game 解题报告
Question Link题目大意现在有一个n长度的字符串,这个字符串,由0,1两个字符组成。现在m行,每行给你两个数x和y,再给一个字符串,even或者odd,表示[ x, y ]区间内1的个数是even或者odd。现在前k行是正确的,第k+1行是错误的,你要做的就是输出这个k值。题解和前一道题很像。注意需要离散化。这里的离散化是不需要考虑相对大小关系的,所以会简单很多,由于闭区间不...原创 2019-05-06 21:42:30 · 174 阅读 · 0 评论 -
POJ 1289 解题报告
Question LinkKruskal code#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<...原创 2019-05-14 21:27:00 · 126 阅读 · 0 评论 -
POJ 1308 Is It A Tree 解题报告
Question LinkAC code#include <iostream>using namespace std; #define N 105 int fa[N];bool flag[N]; int findfa(int x){ return x == fa[x] ? fa[x]:fa[x] = findfa(fa[x]);}void unin(int x...原创 2019-05-12 18:23:12 · 105 阅读 · 0 评论 -
POJ - 1847 Tram
Question Link题目意思3 2 12 2 32 3 12 1 2第一行从点1 出发,接下来有两个点。2(直接到达)。3,要改变方向才能到。所以意思就是 1->2 可以直接到达,1->3要改变方向才能到第二行从点2 出发,接下来有两个点。3(直接到达)。1,要改变方向才能到。所以意思就是 2->3 可以直接到达,2->1要改变方向才能到第三行...原创 2019-04-28 21:54:52 · 190 阅读 · 0 评论 -
POJ-1062 昂贵的聘礼 解题报告
Question Link题目分析建立图模型,物品对应结点,兑换关系,以及优惠价格,对应终点,和边权,而你现在要做的就是找一条链路,就是多个兑换关系形成的一条路,这条路上所有的权值,再加上,最终兑换成的物品本身的价格,使得这个值最小。由于物品本身价格不变,那么可知,我们需要求得这条路权加和最小。对应dijkstra求最短路。但是上述分析缺少一个限制,就是这条路上的所有点,他们的最大等级减去他...原创 2019-04-28 12:51:51 · 229 阅读 · 0 评论 -
POJ 3259 Wormholes 解题报告
Qusetion LinkProblem analysisingJust try to find the negative edge.Here are AC code (Bellman-Ford)#include<iostream>#include<queue>#include<cstring>#include<string>#inc...原创 2019-04-18 20:52:39 · 99 阅读 · 0 评论 -
POJ 1502 MPI Maelstrom 解题报告
Question linkDijkstra#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<cstd...原创 2019-04-20 19:30:21 · 108 阅读 · 0 评论 -
POJ 3660 Cow Contest
Question LinkQuestion analysising如果一只奶牛能确定和另外n-1头奶牛的关系,那么就能确定这头奶牛在奶牛中的ranking写法e[i][j] 有值 即 i 打败了 j 。否则无关系,或者被打败。只能是有向图,否则多对一,无法确定关系。当i打败k,k也打败了j时,能确定i和j的关系。当i打败k,j也打败了k时,不能确定i和j的关系。#include<...原创 2019-04-20 20:28:34 · 72 阅读 · 0 评论 -
POJ 3159 Candies 解题报告
Question Link差分约束系统对应的最短路。题意:n个人,m个约束,约束是,由,A,B,C,三个数字组成。B比A多出来的糖果不超过C个,问,n号人最多比1号人多几个糖果?解法:对应最短路模型,在松弛完最短路后则变为 d[v] <= d[u] + w ,转化为 d[v] - d[u] <= w,这个和上面的 B - A <= C 是相同的模式 , 因此建图的...原创 2019-04-25 20:51:06 · 93 阅读 · 0 评论 -
POJ 2387 Til the Cows Come Home
Question linkSolution 1You can use Dijkstra algorithm to solut this question.The following is the code that can be accepted#include<iostream>#include<queue>#include<cstring>#i...原创 2019-04-14 13:13:51 · 65 阅读 · 0 评论 -
POJ 2253 Frogger 解题报告
Question LinkACcode(Dijkstra)Solution 1#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>#define N 205#define inf 0x3f3f3fusing namespace std;doub...原创 2019-04-14 17:00:42 · 134 阅读 · 0 评论 -
POJ 3268 Silver Cow Party
Question Link题目大意n个点,m条边,求各点 i 到 x 点的最短路,再由x点回到到 i 点的最短路,去其中i的最大长度。思路x到各点的最短路,用bellman-ford algorithm,各点到x的最短路,先去反边,在新图上,再利用x到各点的最短路算法。AC Code (Bellman-Ford)#include<iostream>#include<...原创 2019-04-17 16:18:18 · 76 阅读 · 0 评论 -
Tarjan 求强连通分量 的优质博客和优质代码
优质博客地址inline void dfs(int u){ dfn[ u ] = low[ u ] = ++t; tack[++top] = u;intack[u] = true; for (int i = head[u]; i ; i = a[i].d ){ if ( !dfn[ a[i].y ] ){ dfs( a[i].y ); low[ u ] = min( low...转载 2019-04-17 19:37:16 · 69 阅读 · 0 评论 -
POJ 2240 Arbitrage 解题报告
Question Link单向图,就是bellman-ford求正环,但是应该预设起点的钱的值为1,或者任意正数。起点暴力,枚举。好吧(其实我是真的傻了)。傻傻的代码#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream&...原创 2019-04-22 21:07:03 · 152 阅读 · 0 评论 -
POJ 1511 Invitation Cards 解题报告
Question LinkSPFA algorithm最短路建立反图和正图,均是以1为起点。Time: 1969msMemory: 49084kB#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>...原创 2019-04-22 22:02:33 · 111 阅读 · 0 评论 -
POJ 2502 解题报告
Question Link题目分析第一、用时间作为边的代价。那么,你可以从一个点走到任意一个点,此时行走的时间就是代价。但是,你还可以,从在相邻,地铁,的结点中,乘坐地铁,那么,乘坐地铁的时间,就是代价。为什么只能是从相邻的地铁站中呢? 因为 1 到 3 结点必须经过 2, 换句话说 1 到 3 一般是折线,不是直线。下面是其他人的题解代码,我觉得很清晰。到自己能写出这样的代码是,再...转载 2019-06-24 13:12:36 · 100 阅读 · 0 评论