文章列表
 
您正在查看 "编程之道" 分类下的文章

2009-11-15 21:08

改写自MiniCppUnit,适用于VC开发环境。抱着学习的目的,将所有的代码以我自己的代码风格重写了一遍,另外做了点小改动:

1. 去除了注释和部分代码。

2. 增加了windows控制台的着色支持。

3. 只包含于一个单独的头文件

感兴趣的可以在这里下载:http://good.gd/287924.htm

 
2009-10-22 19:23

Google doc:https://docs.google.com/fileview?id=0BwvN5bVSmQYUNTVhZjQ0N2EtYmY3NC00YzgyLTgwOTgtZmNhNmFmMDNiMDYx&hl=en

CSDN:http://download.csdn.net/source/1759637

本来原计划最多三个月就能全部完成的,结果用了差不多五个月。一是因为最近一直在忙项目,除了要写大量的代码之外,还有很多杂七杂八的事情。二

 
2009-09-03 12:35

这里的rotate操作,也就是指循环移位。比如将串“ABCDEFG”以D为中心旋转,就相当将该串向左循环移位,直到第一个元素为D为止,最后得到新串“DEFGABC”。要想方便的完成rotate操作,一个常见的技巧是这样的:先将前半部分反转,再将后半部分反转,最后再将整个串反转即可(这里的前半部分与后半部分是以旋转中心来划分的)。还是以串“ABCDEFG”以D为中心旋转为例,以D为分割点,将先半部分与后半部分分别反转后,得“CBAGFED”,最后将整个串反转即得“DEFGABC”。这个算法

 
2009-06-19 16:30

也即是求一棵二叉树的节子叶点的带权平均路径长度。这其实是《Algorithms》中的一个习题,27个字符的Huffman树,用手算的话实在太麻烦了,于是干脆写了一个程序。算法当然很简单,设以节点node为根的子树的节子叶点个数(带权)为numLeaf(node)。所有叶子节点的带权路径长度之和为totLength(node),则有totLength(node)=numLeaf(node)+totLength(node->left)+totLength(node->right)。详细代码如下(python),其中treeNode[1]为该节点的权,treeNode[2]为左孩子,treeNode[3]为右孩子。

 
2009-06-07 18:44

在上个星期的“有道难题”网络预赛中,某些Group的第二题涉及到了完全平方数的判定问题。相信大多数人的判定语句都差不多是这样写的:if(sqr((int)sqrtl(n))==n){...},把这条语句整理一下,大概是这样:

 
2009-05-23 13:07

我常感叹到,学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。学力学就没有这样的好事了(抱怨一下),除了论文就是论文,满篇公式,晦涩坚深,真不是给人看的(虽然我也没看过几篇)。在这里列出一些我看过或者准备看的算法书籍,以供参考。另见豆列:负责任推荐:算法学习经典

1. CLRS 算法导论
算法百科全书,只做了前面十几章的习题,便感觉受益

 
2009-02-17 21:25

Project Euler上最近的题目都还比较意思,来看看前些天刚刚新鲜出炉的一道题:

 
2009-02-14 16:31
 
2008-12-29 20:36

贪心通常是没有好下场的.
                      -------Shakespeare.

http://acm.pku.edu.cn/JudgeOnline/problem?id=1083

听说这是个简单题,于是想当然的直接贪心,于是理所当然的WA了,后来在该题的discuss页中看到

 
2008-10-27 22:07

晚上突然没心情写程序了,好像有点感冒的迹象。想来想去还是在poj找只水題做做,不用动什么脑子,休息一下。

 
2008-10-21 13:05

题目:给定一个N, N (10 <= N <= 10^9), 求满足以下条件的所有数对(x,y):

  • y为x去掉某个10进制位后形成的新数.比从可以去掉 1234 中的3得到 124.
  • y总是比x少一位并可以以0开头. 如去掉 1002 的千位后得到 002
  • x+y = N.

    如果直接搜的话,根据题意,设 N 的

  •  
    2008-10-14 13:14

    最小长度为凸包的周长加上一个2πL, 其中L为"the minimal number of feet that King allows for the wall to come close to the castle".

    求凸包的算法如下-Graham扫描算法:(可参见算法导论)

    GRAHAM-SCAN(Q)
    1 let p0 be the point in Q with the minimum y-coordinate,
               

     
    2008-10-07 19:42

    思路很简单,把互相不认识但跟其它人都认识的人挑出来分成两坨(这里的认识是双向的,即i认识j,且j认识i),然后分别发配到两个Team中即可。分配是个dp的过程,需要记下转移路径以便输出结果.

    算法如下:

    1. 求补图。 即在原图中如果ij不认识,则添加边 Eij.

    2. 求补图的连通分量。对于无向图的连通分量直接dfs即可。

     
    2008-09-18 21:53

    一道送分DFS, 注意每个顶点贡献的边长等于4减去这个点的四连数.

    代码如下: (p.s. 由于百度空间没有代码高亮,推荐一个在线编辑器 DotNextTextBox.)

     
    2008-09-01 22:00

    其实这个题完全用不着IDA*,因为状态空间并不是很大,双向BFS就能很好的解决.但是为什么还是要用IDA*呢?
    原因有三点:

    1.以前没用过,这次想试一下.
    2.IDA*实现比双向BFS简单
    3.如果是扩展到15数码问题的话,则IDA*是最好的选择,这一点在无数论文中都已验证过了.

    IDA*(Iterative deepening A*)即是迭代加深启发式搜索.在这题当中,实际上是把启发函数用来做剪枝了,算法如下:

    1.定义启发函数 H()为∑[abs(xInit-xTarget)+abs(yInit-yTarget)],由于每次

     
       
     
     
    文章分类
     
       
     
    文章存档
     
         
     
    最新文章评论
      

    照上面做了,事件还是不能被JS捕获,我的QQ:273119664,期待您的帮助!!!
     

    作者你好,我是数学系的学生,看了你写的有一些感想,想交流交流
     

    我想要源码,谢谢楼主!liuxingzhuri@live.cn
     

    ,zaiyige
     

    这个界面是用什么写得啊,MFC吗?
       
    帮助中心 | 空间客服 | 投诉中心 | 空间协议
    ©2012 Baidu