![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 60
dogeding
地表最辣鸡的咸鱼 没有之一 OVO
展开
-
最短路&差分约束
很久以前还有过一篇floyd和dijkstra的东西虽然写得丑也放上来吧floyd多源最短路,k要放在外面。for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) dist[i][j]=min(dist[i][j],dist[i][k原创 2018-08-30 09:56:33 · 155 阅读 · 0 评论 -
51nod-1833-环
有一个有向图。这张图有n个点和m条有向边。 他很好奇不相交的环(简单环)来覆盖所有点的方案数(数字可能很大请模998,244,353)。 Input 第一行有n和m。(1<=n<=20,1<=m<=n*(n-1)) 后面m行描述着m条边。 输入保证没有重边自环。 Output 输出方案数。 Sample Input 3 3 1 2 2 3 3 ...原创 2018-02-18 18:14:43 · 122 阅读 · 0 评论 -
51nod-1737-配对
给出一棵n个点的树,将这n个点两两配对,求所有可行的方案中配对两点间的距离的总和最大为多少。 Input 一个数n(1<=n<=100,000,n保证为偶数) 接下来n-1行每行三个数x,y,z表示有一条长度为z的边连接x和y(0<=z<=1,000,000,000) Output 一个数表示答案 Sample Input 6 1 2 1 1 3 1 ...原创 2018-02-18 17:57:35 · 243 阅读 · 0 评论 -
最小生成树
0.定义 给定一个无向图,如果它的某个子图中任意两个顶点都互相连通并且是一棵树,那么这棵树就叫做生成树。如果边上有权值,那么使得边权和最小的生成树叫做最小生成树(MST)。1.Prim假定生成树中最开始只有一个点。然后每次寻找离生成树最近的点,加入生成树。不断进行操作,就可以得到一棵最小生成树了。 如何寻找?可以维护每个点离生成树的距离,加入顶点u时只需查看与u相连的边就行了。...原创 2018-02-13 11:10:38 · 178 阅读 · 0 评论 -
2-sat
简单概括一下2-sat:给定一个布尔方程判断是否存在一组变量的真值指派是方程为真。特别地,求解形如(a∨b)∧(c∨d)∧...的方程为2-sat。 How to?把每一个(a∨b)改写为(!a=>b∧!b=>a)的样子(...你们凑合着看吧,那个=>是蕴涵的意思),然后根据蕴涵的关系连边,再求一发强连通分量,如果a和!a在同一个强连通分量就无解,否则:若x所在强...原创 2017-09-23 23:01:34 · 202 阅读 · 0 评论 -
强连通分量
先说一下强连通分量是个什么鬼吧。说白了,就是在有向图的子图中任意两个点A B,A可以到B且 B可以到A就是强连通分量了。原谅我的语文差到措辞措到没逻辑 我就说一下我常用的两种算法吧...代码丑什么的请见谅。 Tarjan:(具体内容请见上一篇blog中间部分【又懒得给链接】)...说白了就是缩点..???QAQ解释不清楚直接给代码算了_(:з」∠)_ vo...原创 2017-09-23 21:14:56 · 168 阅读 · 0 评论 -
(1668): 割点和割边
这就是一道裸题啊23333 时间限制: 1 Sec 内存限制: 64 MB题目描述给出一个无向连通图, 求出所有割点与割边的数量。输入第1行: 2个整数N,M (1 <= N <= 5,000,N-1 <= M <= 10,000),分别表示顶点数和边数 接下来M行,每行2个整数,表示图中的一条边。输出第1行:1个整数,表示割点数 第2...原创 2017-09-09 22:02:50 · 371 阅读 · 0 评论 -
1071: 骑马修栅栏
时间限制: 1 Sec 内存限制: 64 MB题目描述农民John每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。 John是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个一个栅栏。你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。John能从任何一个顶点(即两个栅栏的交点)开始骑马,在任意一个顶点结束。 ...原创 2017-08-29 22:11:11 · 295 阅读 · 0 评论 -
poj-1041-John's trip
Little Johnny has got a new car. He decided to drive around the town to visit his friends. Johnny wanted to visit all his friends, but there was many of them. In each street he had one friend. He s...原创 2017-08-29 21:48:06 · 657 阅读 · 0 评论 -
poj-1258-Agri-Net
Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course.Farmer John ordered a high s...原创 2017-06-28 00:13:15 · 385 阅读 · 0 评论 -
(1374): 这是一棵树吗?
时间限制: 1 Sec 内存限制: 64 MB题目描述树是一种重要的数据结构。它要么为空,要么是一个或多个顶点的集合,这些顶点由有向边连结,并且具有如下性质: (1) 有且仅有1个结点,称为“根”。根结点没有边指向它; (2) 除根结点,每个结点仅有一条边指向它; (3) 从根到每个结点仅有一条唯一的路径。 例如,下面三个图中,第一、二个表示的是树,第三个不是。 给出顶点和有向边的信息...原创 2017-01-25 17:51:40 · 491 阅读 · 0 评论 -
(1070): 【USACO TRAINING】香甜的黄油
时间限制: 1 Sec 内存限制: 64 MB题目描述农夫John发现做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。 农夫John很狡猾。像以前的Pavlov,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下...原创 2016-12-31 12:23:05 · 283 阅读 · 0 评论 -
oj-【基础图论】最优布线问题
题目描述学校有n台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们中间有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。 当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机(作为中转)来实现与另一台计算机的连接。 现在由你负责连接这些计...原创 2016-10-26 13:18:12 · 1328 阅读 · 0 评论 -
作业-最短路径问题(floyd.cpp dijkstra.cpp)
题目描述平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间的最短路径。输入第1行:1个整数n第2..n+1行:每行2个整数x和y,描述了一个点的坐标第n+2行:1个整数m,表示图中连线的数量接下来有m行,每行2...原创 2016-10-15 21:36:13 · 602 阅读 · 0 评论