昨天在TopCoder上做了Google Code Jam China 2005的考题。虽然题都不是太难,毕竟才是海选哈,题目类型一个是排列组合类问题,一个是搜索类问题。不过要在1小时内调试并提交两个算法题的代码,对于我这样离开学校工作了几年的人,还是挺不容易的。结果只完成了一道题,没有了继续参加后续比赛的资格Code: Google Code Jam China 2005

    由于TopCoder严厉声明不能私自转载它的考题,那么我贴出我自己做的试题的答案应该没有什么问题吧?下面这是750 Points那个搜索问题的C#版代码:

Code: Google Code Jam China 2005namespace CodeJam
}

    这个题开始被题目搞得有点郁闷,也就是被它的sample input误导了一下,它的那个4*3*3*3那个示例太迷惑人了:(。上面这个解法在google 1G个路径搜索限制下,在P4 2.4的机器上,最大需要大约40s的运行时间,这样的Performance似乎太磕碜了。

    于是后来又用C++写了一遍,效率也没有什么提高,而且比C#版还略微底些Code: Google Code Jam China 2005
Code: Google Code Jam China 2005// CodingCpp.cpp : Defines the entry point for the console application.
Code: Google Code Jam China 2005

Code: Google Code Jam China 2005#include 
"stdafx.h"
Code: Google Code Jam China 2005#include 
"string.h"
Code: Google Code Jam China 2005#include 
<windows.h>
Code: Google Code Jam China 2005
Code: Google Code Jam China 2005
char ** g_Grid;
Code: Google Code Jam China 2005
char *
 g_Find;
Code: Google Code Jam China 2005size_t g_Order;
Code: Google Code Jam China 2005size_t g_FindLength;
}

    上面代码中的示例有111,478,680个paths,C#版和C++版分别耗时:2671.875ms和4281msCode: Google Code Jam China 2005。虽然代码逻辑稍有不同,不过这个差别也确实让人大跌眼镜wa。
    硬件:P4 2.4G 512M
    软件:WinXP SP2, VS.NET 2005


相关文章:

  • 2021-06-20
  • 2021-05-20
  • 2021-09-04
  • 2021-09-29
  • 2021-06-09
  • 2021-12-06
  • 2021-10-09
  • 2021-11-05
猜你喜欢
  • 2021-09-01
  • 2021-07-12
  • 2022-01-05
  • 2022-12-23
  • 2022-03-01
  • 2021-08-27
  • 2022-02-17
相关资源
相似解决方案