随笔分类 - 图论
摘要:题意略。 思路: 如果是问一下然后搜一下,那必然是不现实的。因此我们要预处理出所有的答案。 我们令mod = lcm(m1,m2,...,mn)。可知,在任意一点,我们挑选两个不同的数c1、c2,其中c2 = k * mod + c1,这两种出发状态一定会走出相同的路径。 由此,我们把每个点拆成mo
阅读全文
摘要:题意略。 思路:我的想法是逐步地找出这个序列中的重要点,我要判断当前这个点能不能删去,就要看上一个重要点和当前这个点 i 在序列中的下一个点 i + 1之间的距离 是否是最短距离,如果是,那么我们就可以化简掉当前这个点(当然,上一个重要点不能和下一个点 i + 1是同一个点)。 还有一种做法是判断三
阅读全文
摘要:题意略。 思路: 本题有必要记录一下。首先是dijkstra求最短路没问题,关键是在建图的时候,地铁沿线还要加上行走互达的边,因为: 在本图中,AC之间的最短时间有可能不是A->B->C这么走,而是有可能从A走到C,这个地方没有考虑周全,wa了几发。 代码如下: 堆优化版: 普通Dijkstra:
阅读全文
摘要:题意略。 思路: 图论里掺杂了一些动态规划。 有几个注意点: 1.dp时状态的设计:因为我们要寻求的是出度为0并且可以从起点走奇数步抵达的点,由于同一个点可以通过多种方式到达。 并且我们在获得奇数步点的时候,需要偶数步点作为支撑,所以visit[ i ][ j ]表示第i个点能否具备j状态(0、1)
阅读全文
摘要:题意略。 思路: 首先是贪心, 我们从前往后依次从小到大考虑放哪个字符, 重点是判断放了这个字符后, 对于剩下的后缀是否存在合法解。 考虑每个位置的允许放的字符集合只有2 ^ 6种, 我们预处理一个后缀和f[i][j], 表示i~n中被集合j包含的个数。 考虑第i个位置放了字符c后, 要使得f[i+
阅读全文
摘要:题意略。 思路: 由于这是一颗无根树,我们可以贪心地来删去边。 详见代码:
阅读全文
摘要:题意略。 思路: 这个题目求的是第一个可行解,由此想到用二分试探的方式来解决。 现在讲讲怎么验证该解是否合理: 先用floyd求出两两之间的最短距离。 dp[ i ][ j ]表示,i 到 j 至少要充几次电,如果dist[ i ][ j ] <= 当前规定的试探值,那么令dp[ i ][ j ]
阅读全文
摘要:题意略。 思路: 本题和POJ1904颇为相似,只是那个最大匹配没有现成的,要我们自己求出来。并且要给每一个单身的王子/公主现找一个虚拟的对象。 这也是合乎情理的,王子每一次换一个公主时,可能会导致某一个王子失去他的原配,然而同样也会有另一个单身王子找到公主。 这里注意,每一个虚拟王子要喜欢所有公主
阅读全文
摘要:题意略。 思路: 我们按大臣给出的完美匹配,将王子向少女和少女向王子连一条双向边,这样,这张图里就出现了n个强连通分量。如果将王子记为x,将少女记为y,则: 如果xi 不再选择 yi,而是选择了 yj ,为了保持匹配不变,xj需要选择yi,或者 xj 选择了 yk ,最终 xk 选择了 yi。不论如
阅读全文
摘要:思路:题目要求所有点到1号点最小距离不变,所以我们采用单源最短路。考虑spfa,对于每一个点来说都是被更新,我们只要记住在这些更新该点的边里 dist最短且cost尽量小的,而且这张图到最后一定是一棵树,我们只需要记录下每个cost[i],最后整体相加就行了。 详见代码:
阅读全文
摘要:题意略。 思路: 这k个点应该放在这棵树的直径上,并且能连成一条路径。如果k比树的直径上的点要多,那么我们就不用把这k个点都用上, 只需要把这棵树直径上所有的点都覆盖上就行了。如果k比树的直径上的点要少,那么我们尽量使这k个点放在这个直径的中心位置。 这个我们可以简单说一下: 首先,把这k个点放在直
阅读全文
摘要:题意略。 思路:一个拓扑排序的题目吧。肯定是要先处理后面那个任务,再处理前面那个任务,我的思路是尽力先把主处理器能操作的先操作完,然后再把副处理器能操作完的再操作完,这样循环,直到处理完全部。 定义total变量为已经处理完的任务总数。 详见代码:
阅读全文
摘要:题意略。 思路: 本题着重考察树的直径。如果我们将这些标记点相连,将会得到大树中的一个子树。我之前只知道树内的点到直径上两端点的距离是最远的,其实,在 整个大树中,这个性质同样适用,也即大树上任意一点,到子树中任意一点的距离,其中距离最远者必为子树直径上的端点。 如果我从子树的端点接入,那子树中的最
阅读全文
摘要:题意略。 思路:为了保证每个点都有至少k条边覆盖,我们可以让二分图的左半边与源点s相连,连容量为indegree[i] - k的边(如果正着想不好想,我们可以想它的反面, 限制它反面的上限,从而保证我正面k条边的覆盖),让二分图的右半边与汇点t相连,容量同样是indegree[i] - k。然后跑最
阅读全文
摘要:中文题,题意略。 这个题点少坐标范围大,直接离散化后建图搞。 这个题目卡vector,真是一脸懵逼。。。。。。。。。。。。
阅读全文
摘要:题目地址:202.197.224.59/OnlineJudge2/ 来自湘潭大学OJ,题号:1267。 这里用到了一个树的直径(树中的最长边)的结论:当你找到一棵树的最长边后,这个树中所有点的最长边必定和这条边的两个端点相连。下面给出证明: 设这条最长边的两个端点分别为B和E; 1.当选择的任意点M
阅读全文

浙公网安备 33010602011771号