![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 62
不给糖吃就胡闹
这个作者很懒,什么都没留下…
展开
-
F. Microcycle(dfs 搜寻路径 + 并查集)
我们可以利用并查集,进行确定其是否有环路。在将所用的边从大到小排序。利用 vector容器,pop_back() 和 push的特性。本题的意思是,求一个环的最小的那条边。起点为 u终点为 v寻找路径。并且输出其这个环的点。原创 2024-03-19 10:38:28 · 185 阅读 · 0 评论 -
P1407 [国家集训队] 稳定婚姻(tarjan算法 强联通分量)
若某男 Bi 与某女 Gj 曾经交往过(无论是大学,高中,亦或是幼儿园阶段,i≤j),则当某方与其配偶(即 Bi 与 Gi 或 Bj 与 Gj)感情出现问题时,他们有私奔的可能性。对于 100% 的数据,所有姓名字符串中只包含英文大小写字母,大小写敏感,长度不大于 8,保证每对关系只在输入文件中出现一次,输入文件的最后 m 行不会出现未在之前出现过的姓名,这 2n 个人的姓名各不相同,1≤n≤4000,0≤m≤20000。对于 40% 的数据,n≤100,m≤400;原创 2024-03-18 21:23:29 · 401 阅读 · 0 评论 -
P1266 速度限制(最短路 迪杰斯特拉算法)
每条道路是有向的,只连接了两条道路,并且最多只有一块限速标志,位于路的起点。在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线。不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快。接下来的 M 行,每行描述一条道路,每行有 4 个整数 A (0≤A原创 2024-03-18 20:42:19 · 437 阅读 · 0 评论 -
P1041 [NOIP2003 提高组] 传染病控制
研究表明,这种传染病的传播具有两种很特殊的性质;第一是它的传播途径是树型的,一个人 X 只可能被某个特定的人 Y 感染,只要 Y 不得病,或者是 XY 之间的传播途径被切断,则 X 就不会得病。第二是,这种疾病的传播有周期性,在一个疾病传播周期之内,传染病将只会感染一代患者,而不会再传播给下一代。这些性质大大减轻了蓬莱国疾病防控的压力,并且他们已经得到了国内部分易感人群的潜在传播途径图(一棵树)。但是,麻烦还没有结束。原创 2024-03-18 19:29:12 · 370 阅读 · 0 评论 -
P3623 [APIO2008] 免费道路
如果国王希望保持两 条鹅卵石路免费,那么可以如图 3(b)中那样保持道路(1, 2)、(2, 3)、(3, 4)和(3, 5) 免费。(2)免费的道路已尽可能少;否则,你的程序应该输出一个符合要求的道路维护方案,也就是保持免费的 道路列表。国王已决定保持尽可能少的道路免费,但是两个不同的村庄之间都应该一条且仅由一条 且仅由一条免费道路的路径连接。给定一个关于新亚王国村庄和道路的述以及国王决定保持免费的鹅卵石 道路数目,写一个程序确定是否存在一个道路维护计划以满足国王的要求,如果 存在则任意输出一个方案。原创 2023-12-13 10:33:43 · 85 阅读 · 0 评论 -
名人问题(分类讨论),士兵问题(找规律)
【名人问题】n个人中的名人是指这样一个人:他不认识别人,但是每个人都认识他。设计一个高效算法,找出该名人或者确定这群人中没有名人。因为名人的定义是全部人认识他,他不认识全部人。2. j 认识 i,当 i 不认识 j。1.如果 i 认识 别人 ,或者 别人不认识 他 ,那么他不是名人。题干主要意思:一个人被全部人认识,当时他不认识全部人。e[ i ][ j ] = 1,表示i 认识 j。这时有出边的一定不是名人。时间复杂度为:O(n),空间复杂度为:O(名人一定是出度为0 ,入度 为 n的。原创 2023-10-29 20:54:29 · 289 阅读 · 0 评论 -
P1119 灾后重建
如果无法找到从 x 村庄到 y 村庄的路径,经过若干个已重建完成的村庄,或者村庄 x 或村庄 y 在第 t 天仍未重建完成,则需要输出 −1。如果在第 t 天无法找到从 x 村庄到 y 村庄的路径,经过若干个已重建完成的村庄,或者村庄 x 或村庄 y 在第 t 天仍未修复完成,则输出 −1。接下来 M 行,每行 3 个非负整数 i,j,w,w 为不超过 10000 的正整数,表示了有一条连接村庄 i 与村庄 j 的道路,长度为 w,保证 j≠i,且对于任意一对村庄只会存在一条道路。原创 2023-08-03 16:48:11 · 315 阅读 · 0 评论 -
P1341 无序字母对(欧拉回路 思路)
给定 n 个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒)。请构造一个有 (n+1) 个字母的字符串使得每个字母对都在这个字符串中出现。如果图中的点全部都是偶点,则存在欧拉回路,任意点都可以。如果只有2个奇数点,则存在欧拉路,其中一个奇点是起点,另一个是终点。如果有多种方案,请输出字典序最小的方案(即满足前面的字母的 ASCII 编码尽可能小)。如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path)。简单点就是:从一个点出发,所有边都走了一次。原创 2023-03-19 16:01:56 · 497 阅读 · 0 评论 -
P1347 排序
一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列 A,B,C,D 表示A原创 2023-03-19 13:33:07 · 408 阅读 · 0 评论 -
P3243 [HNOI2015]菜肴制作(思维 + 拓扑排序+反图)
接下来考虑 33 时有 (4,3)(4,3) 的限制,所以接下来先制作 44 再制作 33,从而最终的顺序是 1,5,2,4,31,5,2,4,3。例 1 里,首先考虑 1,因为有限制 (3,1) 和 (4,1),所以只有制作完 3 和 4 后才能制作 1,而根据 3 号又应尽量比 44 号优先,所以当前可确定前三道菜的制作顺序是 3,4,13,4,1;例 1:共 4 道菜肴,两条限制 (3,1)、(4,1),那么制作顺序是 3,4,1,2。在满足所有限制的前提下,1 号菜肴尽量优先制作。原创 2023-03-19 12:48:52 · 347 阅读 · 0 评论 -
P1113 杂务(拓扑排序 or 记忆回溯)
的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。尽早将所有杂务完成是必要的,因为这样才有更多时间挤出更多的牛奶。至少有一项杂务不要求有准备工作,这个可以最早着手完成的工作,标记为杂务1。有些杂务没有需要准备的工作只描述一个单独的0,整个输入文件中不会出现多余的空格。有需要完成的n个杂务的清单,并且这份清单是有一定顺序的,杂务k(k>1)的准备工作只可能在杂务1至k−1中。第1行:一个整数n,必须完成的杂务的数目3≤n≤10,000);一个整数,表示完成所有杂务所需的最短时间。原创 2023-03-18 10:52:13 · 499 阅读 · 0 评论