• 首先介绍一下这三样东西:
    Eclipse:IBM捐献出来的一个开源、免费、跨平台的IDE,具有极其强大的可扩展性。
    CDT:C/C++ Development Tools,Eclipse用于进行C/C++开发的插件。
    MinGW:简单的讲,它就是一个用于Win32下生成二元码的编译环境,它也是开源、免费的。

    这篇文章使用的各种工具的版本: Eclipse 3.4.2, MinGW 5.1.4, CDT 5.0.2

    假 设Eclipse已经安装好了(如果没有,直接去下载之后解压就可以了,它是完全绿色的),因为默认的Eclipse是不支持C++开发的(除非你选择安 装的是Eclipse for C++),所以首先需要安装Eclipse用于C++开发的插件Eclipse C/C++ Development Tools。可以在Help -> Software Update -> Available Software -> Ganymede Update Site -> C and C++ Development中找到这个插件。

    more...

  • 最近忙,很忙,所有事情都凑到一起了,于是每天早上9点起床,晚上昏天黑地的做到一两点才睡觉.脑袋里面有很多好的idea也没时间去实现.

    突然对中文信息处理感兴趣了,因为英文默认每个词都是用空格分开的,这给英文信息处理带来了很大的方便,中文则不是这样,要处理中文信息,首先要把一个字符串按照有意义的词分开.这就涉及到一个分词算法的问题了.最简单的分词方法就是基于词典的正向最大匹配机械分词.

    如果现在有一个理想中文字典,最大字长是4(4个中文字符,下同),一条中文信息:温.家宝会见新加坡总理.

    首先建立一个循环,设置两个整形变量标志位,begin和end,初始状态下,begin=0,位于字符串头,也就是温字前,end=str.GetLenth(),位于字符串尾(字符串长度小于4的时候)或者end=8,第四字处(字符串长度大于等于4).

    设置一个临时字符串temp,拷贝输入字符串从begin到end的一段,也就是"温.家宝会",在字典中搜索temp

    显然,这四个字是不会在字典中搜索到的,于是判断搜索函数返回值后,end-=2,向前移动一个字,begin不变.返回循环开始处.

    这次执行循环的时候,由于end前移一个字,所以temp="温.家宝",这个词在字典中就可以搜索到了,于是判断搜索函数返回值后,把词分离出来,之后移动标志位,begin=end,begin向后移动到end的位置,end+=8,end向后移动4个字(begin之后的字长大于4时候),或者是end=str.GetLenth(),end位于字符串尾(begin之后字长小于4的时候),重复循环

    最后,当begin位置在最后一个字或者最后一个字之后的时候,也就是str.GetLenth()-begin<=2的时候,整个分词结束,也就是整个循环的出口.对于上述例子,因为"总理"是个词,所以完成分离"总理"之后,begin位于字符串末尾.

  • ACM技巧(For amateur only)

    日期:2008-07-22 | 分类:Playing With Technology

    1.输入输出 

    ACM和TopCoder不同,TopCoder只用让参赛者写一个class,而ACM需要参赛者完成整个console程序.在TopCoder中,输入输出是通过parameter传递的,不用过多考虑,在ACM中,却需要自己编写.

    (1).只有一组输入时,这种情况不用我说了,都会,但是通常也不会有这么水的题

    (2).固定组数的输入,可以利用一个计数器和while语句完成,

    01 #include <iostream>
    02
    03 int main(void){
    04     int n;
    05     scanf("%d", &n);
    06     while (n--){
    07         //...
    08     }
    09     //...
    10     return 0;
    11 }