2009年12月17日星期四

算法考试结束

不知道以后会不会忘了

活着

这部电影,我看了

2009年12月8日星期二

关于这么一个指针传参数的问题

今天在写一个函数,就是要重新给一个指针分配一块内存。比如
void renew(int * array, int b)
{
     delete [] array;
     int size = 2*b;
     array = new int[size];
     memset(array,13,sizeof(int)*size);
}
void main()
{
     int * array;
     int size = 13;
     array = new int [size];
     memset(array,0,sizeof(int)*size);
     renew(array);
     delete [] array;
}
结果胡折腾了一会,企图修改数组的内容,实际上毛用都没。后来哥悟到了,具体参考这里
不过哥哥有个比那文章稍好点的解决方法,那文章说真要用,就用int **。其实当然也可用一个指针的拷贝,这样具体代码都不用改,那么,请听题,如果修改renew函数的参数?
A) void renew( &(int * array), int b)
B) void renew( int &(*array), int b)
C) void renew( int &* array, int b)
D) void renew( int *& array, int b)

void renew(int *&array, int b)


2009年12月5日星期六

关于向量夹角的问题

昨天一个问题貌似没想通,太囧了,看起来貌似很简单。
就是三维空间中,给了两个向量,就它们之间的夹角。当然有内积是,然后acos是可以算出来的。不过这个角度是无视转向。两个步骤可以结局,首先是要找一个法向量;其次是假定在一个平面中,求个带正负的面积。

关于一种图,不知道它有没有确切定义

在做2-SAT的时候发现的。就是在一个有向图中,不断地加边,直到找不出这样的边。这样的边uv是指对某一个点u,通过一条路径能到达v。我想不起有没有这样的定义。反正有一点可以确定,就是如果有环就是强连通分支。

2009年12月4日星期五

关于NP证明

自己先不严谨总结了一下,证明一个问题是NP难。粗俗地说,就是别SB,要BS。
首先得有一个问题B,是已知的NP难,也就是说,它的解法至少是非多项式时间的。
然后我们要证明的是一个问题S,怎么证呢?
如果我们能找一个方法把B问题变成S问题,这个变换的方法得是多项式时间的。
这样就可以证明要解决S问题,也是至少得非多项式时间的。
这里关键就是要把已知的B问题变成S问题,而不是把S问题变成B问题。


2009年11月24日星期二

写在感恩节前

今天口语战战兢兢地面试完了,不知道结果怎样,但愿过了吧。
整个世界(西方世界)都在准备着这个感恩节,落下我们这些个外邦人无所适从。我又不是派对狂,总觉得老美的假日总与我无大关系。也罢,落得一天好休息。
今天要把MixedIntegerSolver给写完,至少得把框架写完整,再写不出来,就是傻逼了,也没时间了。另外,近几天要记得给James写封邮件,讨论讨论图形学课的最终project怎么做做。:þ



2009年11月5日星期四

ubuntu 9.10 相当不错

我是很久没碰linux了,本来也不是很熟悉的,最近9.10是风风火火的,于是我也凑个热闹。反正装起来方便的。用了一下,感觉果然相当得好。

2009年10月29日星期四

折腾了一晚上

悲剧,完全是浪费时间。从学校网站上下的Windows 7镜像文件居然不完整,重下一次之后就可以了。幸亏之前用FEBE备份过火狐的插件,加上Xmarks,恢复起来很方便,就是这下又要重装VS08,VS05还有CGAL那些库了,希望今晚能够搞定。不过能玩上win7也挺好的~

2009年8月25日星期二

CGAL配置摘记

原本以为,我是始终不太会习惯于这种摘记的。现在觉得,与其说每次在同一个问题上反复花时间,不如在第一次解决时多花点时间。正所谓,好记性不如烂笔头。 —— 题记


CGAL安装配置小心得

加点关键词,以便万一有同道中人在google 就更可能搜得到。

CGAL VS 2005 boost thread not found


1. 要看很有用的说明文档(猛击此处),它已经挺详细的了。按照说明,将各种所需的库,都要首先安装好,其中zlib是CGAL自带。今天又忘了,去下载了个,虽然影响不大。

2. 其实关于CMake要说一点。这个工具挺好用的,只是一段时间不用,容易忘记怎么用。今天就是没把输出路径改好,为了干净就又重新配置一边。

3.关于一些出错信息。warning看一下,error仔细看一下,这是有好处的。今天关于boost库配置的时候,出了不少错误。一直google解决方法,其实看error信息是最好的。根据出错信息里的提示,直接在CMake里加了两个变量就好解决了。

4.关于Qt。今天一直再没搞定boost的情况下,折腾用Qt4,结果是都不行。于是配置的时候,去掉了Qt。后来解决了boost,但又没把Qt配上。所以对于Qt就是不知道能不能用,下次配的时候再看吧,应该是可以支持的。

5.关于安装,配置完之后,可以在输出目录生成一个cgal.sln工程文件,然后重新生成工程就行了。

2009年8月21日星期五

2009年7月14日星期二

这博客太多了

又弄了一个