2

我正在尝试更熟悉需要解决图形的问题(最好通过图形解决)。

如果有人有一个使用图表的旧 ACM 编程竞赛问题,或者在他们解决问题时发现另一个特别有启发性的问题,我将不胜感激。我想熟悉图形,轻松识别图形类型问题并能够利用基本的图形遍历算法。

任何人有一个甜蜜的问题,他们可以发送我的方式?

4

6 回答 6

2

为了更好地掌握图上的操作,您可能只想实现一些已知的图算法

尝试实现Nurikabe求解器或生成器。它需要相当多的经典图操作。

于 2008-10-01T04:29:59.273 回答
1

您应该熟悉柯尼斯堡桥问题。您还应该真正熟悉图论问题中经常出现的数据结构类型。

于 2008-10-01T12:06:22.423 回答
1

图实际上可以用来模拟几乎任何问题。Topcoder.com马拉松比赛通常适用于基于图形的解决方案。

您可能会检查其中的一些问题——它们的来源还有更多。

于 2008-10-01T17:04:49.677 回答
1

我发现这本书非常有用(亚马逊链接): 编程挑战

它不仅对图、树、基本数据结构进行了非常深入的解释,而且还对涉及每种类型的编程提出了一些挑战!这份文件对我来说比我的教科书更有用!

以下是其中的一些图形问题:

涉及图遍历的问题:

  • 双色:第 203 页
  • 玩轮子:第 204 页
  • 旅游指南:第 206 页
  • 斜线迷宫:第 208 页
  • 编辑阶梯:第 210 页
  • 魔方塔:第 211 页
  • 从黄昏到黎明:第 213 页
  • 河内塔麻烦(再次!):第 215 页

涉及图算法(Dijkstra's、Min Spanning Tree 等)的问题:

  • 雀斑:第 231 页
  • 项链:第 231 页
  • 消防局:第 234 页
  • 铁路:第 235 页
  • 战争:第 237 页
  • 盛大晚宴:第 241 页
于 2008-10-02T17:22:17.833 回答
0

你没有说你正在使用什么语言(考虑使用)。如果可以,我建议使用 Lisp 或 Python。它们都适用于简单的图形操作。如果你想要真正花哨,你可能想使用 PyGame 创建一个漂亮的输出。

至于问题,看一个简单的程序并将其转换为图形。提示,每个令牌都是一个节点。假设您有一些循环和方程式,那么您可以遍历图形并确定可以移出循环的内容。可以重新排列方程以更“有效”。

我对这个问题的基本原理是,它将通过查看编译器优化阶段中可能发生的过程来帮助您作为程序员。

顺便说一句,如果您尝试上述方法,请查看Plex,它将为您节省大量使用解析器的时间。

于 2008-10-01T04:47:02.137 回答
0

http://codekata.pragprog.com/2007/01/kata_nineteen_w.html

提示:DAWG 是一种非常好的方法。

于 2008-10-01T04:47:51.243 回答