
图论
文章平均质量分 73
nianiajr
http://www.liangjiarui.com/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
uva11234-
Problem E: ExpressionsArithmetic expressions are usually written with the operators in between the two operands (which is called infix notation). For example, (x+y)*(z-w) is an arithmetic expressi原创 2013-07-25 13:44:46 · 1053 阅读 · 0 评论 -
poj1860
bellman判环:#include#include#include#includeusing namespace std;struct edge{ int from; int to; double r; double c;}es[250];int n,m,s,E;double v,a,b,rab,rba,cab,cba,d原创 2013-12-21 11:38:10 · 772 阅读 · 0 评论 -
poj2253
floyd变形,求最短路径最大值#include#include#include#includeusing namespace std;struct point{ double x,y;}p[205];double g[250][250];const double INF=100000000.0;int n;double dis(point p1,point原创 2013-12-21 11:47:28 · 692 阅读 · 0 评论 -
poj3259
依旧是判环,不过需要注意的是边的设定#include#include#include#includeusing namespace std;struct edge{ int from; int to; int v;}es[6000];int n,m,w,f,s,e,t,E,d[505];bool find_loop(){ memset(d,原创 2013-12-21 11:41:07 · 838 阅读 · 0 评论 -
poj1094
这个拓扑排序有一些特殊,在给出m个信息时,只要前r个信息已经足够判断的时候就要输出判断结果,但输入还要继续,这是Poj的风格了,不过判断时一定要小心优先级,要先判断是否有环,然后是否有唯一序列,最后才是不确定序列,这里我坑了太久,看了别人的提示才知道。拓扑排序做法就是按照找入度为0的点作为起始点进行排序,这里有bfs较为贴切。总归来说还是要细心,理解逻辑的先后顺序。#include#incl原创 2013-12-29 13:57:58 · 680 阅读 · 0 评论 -
ZOJ 1455
不知道如何建图,看了别人报告说要用到差分约束顿时感到很神奇,不过还是没看太明白,建议有算法导论的可以读一下,那个写的更详细和明白,这里用到了行列式不等式求解的知识,可以利用其转化建成图,最后题目就转化为了求最短路问题,但一定要注意负环存在,所以得用Belman-ford算法,以前老用的dijsktra不太管用了,所以又去学习了Bellman算法,果然做题可以推动看书学知识的东西,嘎嘎。#i原创 2013-10-17 19:41:20 · 843 阅读 · 0 评论 -
hdu 4751
一个人就是弱···做这个题做了四个小时···一直WA开始以为两个动态数组当作两个组,依次把每个人加入就好,还真觉得没什么问题。。。思维好搓啊,哪里可以这么简单。后面下来才知道这是一个tow_sat问题,第一次听说这个名词···,大概和二分图差不多,既然要分组,那么不认识的肯定不能在同一组,用两个标记进行排斥分组就好,但得注意此处的单方认识也要当作不认识,后面枚举每个点进行一遍dfs()查找是否有矛原创 2013-09-22 11:59:44 · 755 阅读 · 0 评论 -
hdu 4738
判连通求桥问题,输出最少派兵人数,不过有个坑就在于如果有桥上无人把手也应当需要派一个人去炸桥,则问题可以解决。#include#include#include#includeconst int INF = 0x3f3f3f3f;const int maxn = 1005;using namespace std;int edge[maxn][maxn];vector原创 2013-10-03 10:16:30 · 841 阅读 · 0 评论 -
hdu 4725
这个题虽然知道是一个求最短路的题目,但构图好像不太会···,不知道如何把数量那么大的节点带边权表达,所以比赛的时候就没做了,后面再看别人解题报告,才发现其实还是用vector来表达的,不过是一个结构体的vecor,看来stl里面的那些常用函数还是没怎么熟悉,不过我一开始读I题就知道层与层之间是要构成连通的边的,不过当时只是想着需要一个虚拟点,但后来看了别人解题报告发现,一个虚拟点是不够的,因为一个原创 2013-09-13 00:02:25 · 1051 阅读 · 0 评论 -
URAL 1022 拓扑排序
题目要求长辈有分,子孙不能排在长辈前面,输出顺序,那么这样来看这就是一个拓扑排序题,开始以为是一个求路径最大的问题,不过存在两节点间并没有关系WA了一次,后面再想题目好像有多解,只要输出一种方案即可,那么细想一下这就是一个拓扑排序了,只要利用dfs回溯从后往前排,把每个结点的子孙往后排,然后不断将访问结束的点插入到首部就好,由于这里明确是一个有向无环图(DAG),所以还可以省略判断直接排序。#原创 2013-09-11 11:38:59 · 942 阅读 · 0 评论 -
D - Warm up 2
D - Warm up 2Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusAppoint description: System Crawler (2013-07-28)Description Some 1×2 dom原创 2013-08-09 00:41:10 · 827 阅读 · 0 评论 -
poj1062
遍历+dijsktra,注意每次可以使用的更新点的筛选#include#include#include#include#include#includeusing namespace std;const int INF=0x3f3f3f3f;int m,n,t,v;int p[105],l[105],x[105],vis[105],ans,d[105];struct ed原创 2013-12-21 11:45:27 · 790 阅读 · 0 评论