图论小技♂ 巧!?

  • 最近寒假里刷了一些题,发现,每种算法并不是套模版那么简单。每种算法都有其性质,充分利用性质,我们就可以利用学会的知识解决未学过的题。
  • 如果有补充,欢迎到下面留言!

1. 拓扑排序

  • 说到topsort,很多人第一反应就是它可以将图排成一个线性表。
  • 好吧,如果仅是知道这一点,那就才疏学浅了... ...
  1. 排序

    • 这点最好理解了,顾名思义,就是,排序QwQ
  2. 解决无后效性问题
    • 这点可以和dp结合起来。往往是树形dp,按照拓扑序进行dp。这样就可以避免使用bfs爆栈
  3. 判环
    • 利用它的性质,跑一遍topsort,看看被跑的点与整个图的点是否相等。相等就没环,否则就有
  4. 找最大/小环
    • 将图不断简化(去掉入度为0的点),最后剩下来的肯定就是一个个环。然后,遍历一个取最大/小值即可

2. 最短路

  • 最短路里也有一些技巧帮助解题!
  1. spfa判负环

    • 自己去Google(逃
  2. 建反向边
    • 这是一个很常用的技巧。比如说多源最短路,我不可能跑n遍最短路吧,所以建一次反向边,跑一遍单源最短路即可

原文地址:https://www.cnblogs.com/BigYellowDog/p/10350001.html

时间: 2024-10-08 10:34:57

图论小技♂ 巧!?的相关文章

图论小系统

将自己学的知识整合了一下,弄了个小的图论系统. 有关知识请看:http://blog.csdn.net/column/details/tulun.html #include <iostream> #include <stdio.h> #include <stdlib.h> #include<string.h> #include<algorithm> #include<math.h> #include<queue> #inc

【题解】【总结】P1330封锁阳关大学&amp;&amp;图论小总结

[题解][总结]P1330 封锁阳光大学 &&图论小总结 这道题其实有一点点难度,不过我能经过思考做出来说明还是没有普及组\(D1T1\)难度的. 考虑一条边的两边要有且仅有一个点被选中...这不就是染色吗?想到此,聪明的你一定就知道怎么做了. 这题唯一的坑点就是不一定图是联通的,所以要\(for\)一下所有点去\(bfs\). 这种题我还\(wa\)了一次,而且如果不是我下了数据还调不出来... 思考一下为什么没有一遍过此题,还是因为思维不够完善.图论的题目,有什么坑点呢?在这里总结一下

小而巧的数字压缩算法:zigzag

阅读facebook开源的RPC(Remote Procedure Call)框架thrift源代码的时候,本来是在阅读框架,却不小心被zigzag这个钻石般闪耀的代码吸引.后来去百度搜索zigzag,却得到满屏图像相关的一个算法(看来起名字得有特点才行).既然相关资料很少,而算法又这么有趣,老王就想要不写一篇这个算法的文章,分享给大家. 这个算法的java代码放在thrift的org.apache.thrift.protocol.TCompactProtocol类里,数据传输的时候用做数字的压

Android Studio 小技巧合集

写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本文将这62个小技巧分为常用技巧(1 – 28).编码技巧(29 – 49)和调试技巧(50 – 62),分成三个部分. 每个小技巧都配有 gif 动图,由于原图在 google photo 上,加载较慢,本文全部转存到七牛上了. 由于能力有限,翻译过程中难免有所疏漏,如发现错误或问题,请在评论中提出

I?n?n?o? ?s?e?t?u?p? ?常?用?修?改?技?巧

Inno setup 常用修改技巧1 .如何让协议许可页面默认选中我同意按钮 [code]procedure InitializeWizard();beginWizardForm.LICENSEACCEPTEDRADIO.Checked := true;end;2.自定义安装程序右上角图片大小 [code]procedure InitializeWizard();beginWizardForm.WizardSmallBitmapImage.width:=150; //设置页眉图片的大小Wizar

小程序+巧应用-微信小程序开发实战pdf

下载地址:网盘下载 系统全面地讲解微信小程序的开发技术.开篇创建一个小程序项目并解析体验,介绍如何由零开始创建一个小程序,全面体验小程序的开发工具.界面.开发框架.实现过程及其主要代码框架,了解小程序的应用场景及开发要求.接着介绍小程序开发基础,包括小程序开发的语言与语法.函数方法.模块.事件交互等.然后详细介绍了组件的应用与开发,包括开发过程与组件应用技巧,还详细分析了API接口,包括使用各个微信原生API接口进行小程序开发的技巧.最后介绍了几个小程序实战案例,让读者实践小程序各项能力的应用及

SpringBoot | 番外:使用小技巧合集

前言 最近工作比较忙,事情也比较多.加班回到家都十点多了,洗个澡就想睡觉了.所以为了不断更太多天,偷懒写个小技巧合集吧.之后有时间都会进行文章更新的.原创不易,码字不易,还希望大家多多支持!话不多说,开始今天的技巧合集吧~ 设置网站图标 允许跨域访问 独立Tomcat运行 启动不设置端口 启动完成前进行业务逻辑 动态修改日志级别 热部署 自定义启动Banner 文字形式 图片形式 相关资料 总结 一点吐槽 最后 老生常谈 设置网站图标 原来我们在使用tomcat开发时,设置网站图片时,即icon

小程序&#183;巧应用,微信小程序开发实战

系统全面地讲解微信小程序的开发技术.开篇创建一个小程序项目并解析体验,介绍如何由零开始创建一个小程序,全面体验小程序的开发工具.界面.开发框架.实现过程及其主要代码框架,了解小程序的应用场景及开发要求.接着介绍小程序开发基础,包括小程序开发的语言与语法.函数方法.模块.事件交互等.然后详细介绍了组件的应用与开发,包括开发过程与组件应用技巧,还详细分析了API接口,包括使用各个微信原生API接口进行小程序开发的技巧.最后介绍了几个小程序实战案例,让读者实践小程序各项能力的应用及掌握一些应用技巧.本

图论小专题B

2 树 2.1 树的定义 一个只有\(N-1\)条边,且任意两个点连通的图叫做树.通过这样定义的树往往是一棵无根树,而我们通常会任意选定一个根节点使其变成有根树.有根树可以定义"父亲和儿子"的层次关系,这往往有利于构造最优子结构,进行DP和搜索等操作. 特别的,如果在树上任意加上一条边,那么整个树上就会多出一个环.我们称这样的树是"基环树".基环树不是树,但是它只有一个环.将整个环作为一个"广义根",然后将根和连在环上的子树分开处理,同样可以套用