图论
sunnyorrainy
这个作者很懒,什么都没留下…
展开
-
codeforces 1283D (类似于最小生成树)
题意:有n棵圣诞树,坐标是xi(1<=i<=n),有m个人,需要把这m个人放到没有圣诞树和其他人的位置,使得所有人到离他最近的圣诞树的距离之和最小。思路:肯定是要保证每个人离圣诞树的最小距离尽量小,所有应该是放在每个圣诞树的左右两边,(如果能放的话)。这样最小距离就是一了。然后向左右两边扩展。这很像最小生成树,每次在优先队列里取出距离最近的点,然后把它的左右两个点放进优先队列里...原创 2019-12-31 15:04:32 · 330 阅读 · 0 评论 -
dijkstra vector存图,堆优化模板hdu2544
题意:给一个图,求1到n的最短路。思路:直接写dijkstra,数据量小,其实不用堆优化也行。用优先队列保存结点,按照距离从小到大排序,可以快速的求出离1距离最小的点。#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>#includ...原创 2019-09-14 14:40:58 · 317 阅读 · 0 评论 -
prim模板,处理两点间的距离hdu1875
有n个点,给出坐标,把它们全部连接起来最少要多少钱,1m的桥100块,如果它们之间的距离大于1000或者小于10就不能连接求出距离,距离小于10或者大于1000的设置为inf,而不是在后面去判断是否符合条件,这样可能会有奇奇怪怪的东西出现,导致wa直接上prim就行#include<iostream>#include<string>#include<...原创 2019-08-13 14:53:35 · 111 阅读 · 0 评论 -
prim算法 堆优化hdu1102
题意:给一个邻接矩阵,表示顶点之间的距离,然后有m行,每行给出两个数,表示这两个顶点之间有路了,不需要再修路。问最少要修多长的路,把所有顶点连起来。思路:prim算法,不用堆优化也行,下标从0开始,每次加入且只加入一个点,并把它到最小生成树的距离加上,对于有路的两个顶点,把它们之间的距离置为0。每次只有当把顶点加入后,才把vis标记置为1。#pragma warning(disa...原创 2019-09-14 19:42:16 · 212 阅读 · 0 评论 -
dijkstra链式向前星存图 poj3255(次短路)
给一个图,求出1到n的次短路。向前星存图迪杰斯特拉的题,只是需要变很多。#pragma warning(disable:4996)#include <cstring>#include<cstdio>#include <algorithm>#include<iostream>#include<cmath>#incl...原创 2019-10-05 09:15:13 · 144 阅读 · 0 评论 -
kruskal算法poj3723
题意:征兵,征一个兵要10000块钱,一些男人和女人的关系,如果有一个男的和一个女的,他们的关系值是d,那么如果他们的其中一个已经入伍了,另一个就只需要10000-d的钱就可以入伍,每个人入伍的时候只能用一个关系。求至少需要多少钱。最多需要10000*人数的钱,需要利用他们之间的关系来减少,把他们之间的关系都变成负的,求一下最小生成树就好了#pragma warning(disable:...原创 2019-10-05 10:48:09 · 108 阅读 · 0 评论 -
差分约束和最短路,BF算法poj3169
题意:要把n个牛排成一行,有一些牛之间的距离不能大于d,有一些牛之间的距离不能小于d。问1到n的最大距离是多少。讲解差分约束和最短路的博客:膜拜大佬松弛操作:if(d[u]+w(u,v)<d[v]){d[v]=d[u]+w(u,v);}对于d[v]-d[u]<=w(u,v),要求这个约束下的解,就是要求d[v]-d[u...原创 2019-10-05 18:58:24 · 176 阅读 · 0 评论