什么是体面的初学者图拼图?
我试图让人们更熟悉需要解决图的问题(最好由图解决)。
如果有人在使用图形时遇到了旧的ACM编程竞赛问题,或者在解决问题时发现另一个特别启发性的问题,我将不胜感激。我想使自己熟悉图,轻松地确定图类型的问题,并能够利用基本的图遍历算法。
任何人都有一个甜蜜的问题,他们可以发送给我吗?
解决方案
为了更好地掌握图形操作,我们可能只想实现一些已知的图形算法。
尝试实现Nurikabe求解器或者生成器。这将需要大量的经典图形操作。
我们不会说自己正在使用哪种语言(想使用哪种语言)。如果可以的话,我建议使用Lisp或者Python。它们都有利于轻松进行图形操作。如果我们真的想花哨的话,则可以使用PyGame创建漂亮的输出。
至于问题,请看一个简单的程序并将其转换为图形。提示,每个令牌都是一个节点。假设我们有一些循环和方程式,则可以遍历图形并确定可以从循环中移出的内容。方程可以重新排列以更"有效"。
我对这个问题的基本看法是,它可以通过查看编译器优化阶段内可能正在发生的各种过程来为我们提供帮助,从而成为一名程序员。
顺便说一句,如果我们同意以上所述,请看一下Plex,它将为我们节省大量使用解析器的时间。
http://codekata.pragprog.com/2007/01/kata_nineteen_w.html
提示:DAWG是一种非常好的方法。
我们应该熟悉Konigsberg桥问题。我们还应该真正熟悉图论问题中经常出现的数据结构类型。
图形实际上可以用于建模几乎所有问题。 Topcoder.com马拉松比赛通常适合基于图形的解决方案。
- 可以使用图形解决ProcessorScheduling问题。
- GraphBuilder问题。
- 距离问题。
- MapMaker问题(加权k色问题,这是经典的计算机科学问题)。
我们可能会检查其中的一些问题,而且它们来自何处。
我发现这本书非常有用(Amazon Link):
编程挑战
它不仅对图形,树,基本数据结构进行了非常深入的说明,而且还涉及每种类型的少量编程难题!这个文档对我来说比我的教科书更有用!
以下是其中的一些图形问题:
涉及图遍历的问题:
- 双色:pg 203
- 玩车轮:pg 204
- 旅游指南:pg 206
- Slash Maze:第208页
- 编辑阶梯梯:第210页
- 立方体塔:第211页
- 来自《黄昏耕种黎明》:第213页
- 河内塔楼麻烦(再次!):第215页
涉及图算法(Dijkstra,最小生成树等)的问题:
- 雀斑:231页
- 项链:PG 231
- 消防局:234页
- 铁路:235页
- 战争:第237页
- 盛大晚宴:第241页