Sid's profileNeverlandPhotosBlogLists Tools Help

Blog


    November 12

    Lube

    受Livia影响,最近迷上了Lube这个俄罗斯民谣摇滚乐队。

    摇滚乐队也不一定要搞得像反政府武装,就像Lube,是一个完完全全的主旋律乐队,歌颂的都是我们劳动人民,光荣的劳动人民!

    thumbCA3ZF405 thumbCA8RFGHG thumbCA76LO1P thumbCA93DLC2 thumbCAAR16UM thumbCABHH1P0 thumbCAFPWS9A thumbCAM1Z10J thumbCAN9CSH2

    这个乐队能让那些曾经生活在东北的人们,或者说生活在受俄罗斯文化影响的地区的人们,一瞬间记起红汤和大列吧的味道。力荐!

    我想念哈尔滨了,我也想念你们,哈尔滨的牛鬼蛇神们。

    你知道《Davai Za》中第5首歌Бабушка里最后的“亚留不留节别呀”是什么意思吗?

    October 26

    Happy Birthday

    taidi

















     

     

    Happy Birthday.
    I love you.

    September 10

    大道理

    01300000027077120018803107610

    Once it has began, won’t stop until it’s done.

                                                     ------Norah Jones

    做人其实很无奈,在国内很无奈,在国外也一样,不要想就好。

                                                     ------偷渡客

    有时候,大道理就是这么简单,这么俗。

    August 03

    我们俩

    96343109e40cb5f463d9860b

    在这个不是假期的假期,我每天都起得出奇的早,当然,是相对于以前的我。个中原因,我想,她是知道的。

    昨晚躺在床上浏览着PSP中她的照片,纠结着照片的清晰度,睡着的时候可能已经3点了。

    所以,今天的晚起是个例外。

     

    平静湖面上的两粒花粉,它们碰在一起的概率可想而知,或许是可想,而不可知。

    我和她,如果单靠自己无趋向性的布朗运动,情况可能还不如那两粒花粉。

    还好,有那次北京之行,还好,我们都花了那笔“冤枉钱”。

     

    于是,有了每天一起或食堂或面馆的午餐,一起四惠-阜成门的地铁,一起的西单书店,一起的天文馆……

    也有些许遗憾,我错过了本该一起的晚餐,并留下了没有回赠礼物的窘态。

    不过,这些在后来多多少少得到了补偿。

    之后,又有了那些电话和信息,和拖欠了很久的上海之行。

    当然,也包括那些难以总结,却最为珍贵的点滴们。

     

    过去的一年多里,我总是咬牙切齿的抱怨运气不太好。

    还好有她,让我又觉得运气好像也没那么差,连花去的那笔对GRE成绩没起多大作用的学费,也变得不冤枉了。

    现在,我总感觉庆幸,自己那原本混乱的美国梦,逐渐变得清晰,更重要的是,我又有了一个新的实现它的理由:

    See Dirac Sea directly.

     

    下午在公交车上,耳机里响着Amorphis主唱低沉的深喉嘶吼,脑子里又开始放那些她主演的剧了。

    那些剧其实没停播过,插播广告也不多。

    August 02

    Seven

    Lust

    Gluttony

    Greed

    Sloth

    Wrath

    Envy

    Pride

    August 01

    Amorphis

    下载Amorphis专辑的时候,得到了意外收获,好心人的种子里包含了Amorphis现场的照片。如下所示。 Amorphis 02  Amorphis 04  Amorphis 06    Amorphis 09

    July 12

    最好的朋友今天滚了。

    早上迷迷糊糊的听见短信,“别了,哈尔滨。别了,好哥们……”

    他那时候刚上车。我没去送他,心里的滋味有点儿奇怪。

    这些天,同学们陆陆续续的离开哈尔滨,直到今天,他走,我才稍微有了点儿离别的感觉。

    想起和他一次次半夜吃饭喝酒,一起被人打,聊电影聊音乐,听他侃哲学侃历史……

    一晃3、4年就这么过去了,真他娘的快。

    下次见面,或者在哈尔滨见面,不知道要等多久了。

    愿他能滚向吃饱喝足、吃香喝辣,并能够相对正确的浪费生命!

    May 31

    签名档的战争

    朋友间流行起了QQ签名档大比拼,在最近几场的“签名档战役”中,石头同学取得了全面胜利。

    1、蓝白战役

    天哥:“又想驴跑,又要小驴不吃草。”

    石头:“天哥,你out啦!新时代的‘又想驴跑,又要小驴不吃草。’应该说成‘又想把石头喝倒,又不请石头吃烧烤。’”

    天哥:“……”

    蓝白战役中,石头同学仅一招就将蓝天同学击败。

    2、白杨战役

    石头:“白先生喜欢吃李先生。”

    杨同学:“杨先生喜欢和白先生吃李先生。”

    杨同学:“李先生开始吃白先生和杨先生。”

    杨同学:“杨先生先生,白先生后生。”

    一直被杨同学压制,石头同学实在忍无可忍了……

    石头:“虽然杨先生比白先生先生,但是白先生称呼杨先生为后生。”

    白杨战役是防守反击的典范。

    May 08

    旧物

    整理资料时,发现一两年前写的一份作业,其实就是后来流产了的技术交流报告。现在看来,那时候是真够幼稚的,居然幻想着实验室的老师和同学们会花时间看,真是可笑。贴出来,博看官一笑。

    ----------------------------幼稚的分割线---------------------------------

     

    算法优化对于程序的作用分析

    在我们学习的过程中,要面对各种类型的实际问题。而在处理这些问题时,首先,也是最重要的就是要将它抽象为数学模型,这样才能让我们所学习的理论知识有的放矢。然后就是要设计解决问题的策略,也就是我们常说的算法。最后,要对解决问题的算法进行优化。

    建模和算法设计的作用显而易见,他们是程序设计的灵魂。在建模失败的前提下,其它后续工作都是徒劳。算法设计可以使我们的程序在占用尽量小空间和花费尽量少时间的情况下解决问题。而算法优化的作用就比较模糊,有时甚至显得微不足道。

    然后,实际情况并非如此。在本文中,将结合曾经做过的一个编程题目对算法优化的作用进行分析。

    1 题目介绍

    为了说明算法设计的思路,首先将对题目内容进行介绍。

    在芯片设计过程中,每个芯片中包含多个功能模块,而各个功能模块之间有输入和输出引脚。为了实现所要设计的芯片的功能,我们要将各功能模块之间所对应的引脚连接起来。如图1所示。

    clip_image002[9]

    图1左图表示出了两功能模块间引脚的对应关系。为了实现芯片中各功能模块的最佳布局,两功能模块引脚间连线中,最大不相交连线数目对芯片设计工程师是极为重要的。如图1右图所示,图中最大不相交连线数目为3。

    本题目要完成在给出任意两模块间引脚对应关系的情况下,计算出最大不相交连线数。

    2 题目分析

    本题目是一个典型的DP(Dynamic Programming)问题。整个问题的解决定于其子问题的解。

    首先,要将问题抽象为数学模型。在两模块间连线中,我们设左侧第1个到第i个引脚的集合与右侧第1个到第j个引脚集合间连线的最大不相交连线数为Area[i, j]。设左侧第i个引脚与右侧第j个引脚的连线数为Edge[i, j],当两引脚中有连线时,Edge[i, j]值为1,否则为0。

    通过以上分析,很容易得到该DP问题的状态转移方程:

    Area[i+1, j+1]=max{Area[i, j+1], Area[i+1, j]}+Edge[i+1, j+1]

    通过该状态转移方程,我们可以递归的计算出整个问题的解。

    2.1 基本程序设计过程

    在程序编写过程中,我们可以用循环来遍历左右引脚集合,如下式所示。将每次循环所得的结果保存在一个表中,循环结束时即可得到问题的解。

    for(i=1;i<=n;i++)

    for(j=1;j<=n;j++)

    { …… }//n为引脚数目

    对于图1中所示的情况,遍历过程及每次循环的结果如表1所示。

                                                                                                                     表1  示例

    j

    i

    1

    2

    3

    4

    5

    6

    1

    0

    0

    0

    1

    1

    1

    2

    0

    1

    1

    1

    1

    1

    3

    0

    1

    1

    1

    1

    2

    4

    0

    1

    2

    2

    2

    2

    5

    1

    1

    2

    2

    2

    2

    6

    1

    1

    2

    2

    3

    3

     

    由表1所示,图1所示的情况,最大不相交连线数目为3。由于程序对于i和j进行了遍历,所以此算法为O(N2)。确立此算法后,在时间要求不是很严格的情况下,就可以得到问题的解。

    2.2 算法优化

    此前提到,求解该问题的基本算法为O(N2),所以当数据量很大时,计算量和运行时间也是相当惊人的。如果仔细分析题目特征,会发现可以对其进行优化。

    观察表1中所示的数据,可以发现:只有当Edge[i, j]值为1时,才能对整个表格中的数据造成影响。这一点也可以通过证明来得到。了解了这个特征,就可以对基本的算法进行优化。

    每个最大不相交连线数的值在表中都对应了一个开始的位置,如在表1第4行中,值为1的最大不相交连线数开始于j为2的位置,而值为3的最大不相交连线数开始于j为3的位置。而这些值的开始位置,都是由Edge[i, j]为1的位置决定的。

    根据以上分析,我们就可以设置一个表Position[t]用来保存值为t的最大不相交连线数所对应的开始位置。如在表1第1行中,Position[1]=4。在第i行中,只有一个ji值使得Edge[i, j]为1,我们可以在1~tmax(tmax值为此刻的最大不相交连线数目)范围内将ji与Position[t]的值进行比较,当Position[t]<ji<Position[t+1]时,将Position[t+1]值改为ji,并不断更新tmax的值。当遍历完每一个i值后,最后所得到的tmax即为问题的解。

    对于每个i,将ji与Position[t]的值进行比较的过程可以通过二分法查找,二分查找算法为O(logN)。所以遍历所有i的算法为O(N*logN)。与基本算法的O(N2)比较,优化后的算法有了很大的改进。用基本算法需要超过1秒的时间所解决的问题,优化后的算法只需要0.1秒就能够完成。

    3 小结

    在上述的例子中,我们所设计的优化方法将算法相对复杂度从O(N2)降低到O(N*logN)。这说明了在建立数学模型和基本算法设计正确的前提下,算法优化有时会对程序起至关重要的作用,尤其是在那些对算法速度、计算准确度和占用空间要求高的情况下。

    文中所提到的题目请详见acm.hit.edu.cn网站上Problemset中的1288题。

     

    附录

    #include<stdio.h>

    int main()

    {

         int n, p, Pin[40001], Left[40001], Area[40001], i, j, left, right, middle, solution;

         scanf("%d",&n);//n为问题数量

         for(i=0;i<n;i++)

         {

              scanf("%d",&p);//p为引脚数量

              for(j=1;j<=p;j++)

              {

                   scanf("%d",&Pin[j]);

                   Left[Pin[j]]=j;

                   Area[j]=-1;

              }

              Area[1]=Left[1];

              left=1;

              right=1;

              middle=1;

              for(j=2;j<=p;j++)

              {

                   if(Left[j]<Area[left])

                   {

                       Area[left]=Left[j];

                       solution=right;

                   }

                   else if(Left[j]>Area[right])

                   {

                       right++;

                       solution=right;

                       Area[right]=Left[j];

                   }

                   else

                   {

                        while(1)

                        {

                             middle=(left+right)/2;

                             if(Left[j]>Area[middle])

                             {

                                  if(right-middle<=1)

                                  {

                                       Area[right]=Left[j];

                                       break;

                                  }

                                  left=middle;

                             }
     
                             else if(Left[j]<Area[middle])
     
                             {

                                  if(middle-left<=1)

                                  {

                                       Area[middle]=Left[j];

                                       break;

                                  }

                                  right=middle;

                             }

                        }

                   }

                   left=1;

                   right=solution;

              }

              printf("%d\n",solution);//solution为问题的解

          }

          return 0;

    }

    April 21

    少年

    为space背景《少年》音乐填词如下:

    你在干啥?

    我在看花。

    看花干啥呀?

    没啥。

     

    为了方便五音不全者演唱,现将音调加入歌词,创作出“所见即所得”的歌词如下:

    捏栽甘傻?

    喔栽堪花。

    堪花甘撒呀?

    抹撒。

    April 05

    口风琴

    前些日子买了个Hohner的10孔口琴,我很稀罕它。

    闲着没事儿看看附赠光盘上的教程,看见一句话:“口琴,也被称做口风琴。”

    当时我就崩溃了,想起来本科时,小飞管口琴叫口风琴,我们还笑话他呢。没想到口琴不光被小飞称为口风琴,别人也那么叫。

    不知道这个小扯孩儿现在干啥呢,是不是还喜欢胡扯,是不是还是觉得人没有狗好看,还想不想和我去A楼桌子上拉屎……

    March 17

    爱物们

    Image013

    March 07

    儿化音的效果

    前几天在实验室听见师弟师妹的对话,或者说两个大四学生的对话,因为他们不怎么叫我师兄的。

    男的问女的:“干嘛去了?”

    女的笑笑,说:“跟师兄师姐们调个板儿。”

    变态的我就从中听出了潜台词“调个板子,我真牛B”。后来觉得我这样想确实有点儿变态,就花了几分钟重新分析了一下两人对话,发现其实是儿化音起了作用,如果是“跟师兄师姐们调个板子。”,那就完全没有牛B的效果。

    儿化音可以使语言变得活泼可爱,生活中这样的例子不少,只是我当时没想起来,导致了对师弟师妹们的误解。就像,如果把“挖鼻屎”说成“抠鼻涕嘎儿”,意境就不一样了,很可爱。不过上个例子体现不出牛B的效果,再举一个,我们常说一个人有“朋克范儿”、“哥特范儿”,这样听起来很牛B,如果去掉“儿”,效果就没了。

    以后,我也要尽量在每句话的末尾加个“儿”,体现我的活泼可爱和牛B。

    明天儿,我起早去实验室儿,放下书包儿,先去厕所拉泡屎儿,回来冲杯咖啡儿,趁着没人儿,放个屁儿,然后开始工作儿,多多努力儿,让老师也夸我牛B儿。

    March 01

    短信

    石头:我被东北拒了。

    石头他爹:让你姥爷亲自和他们说说呢?

    石头:……不姓毕的姥爷估计不怎么好使。

    这则寓言告诉我们:什么时候也不能丢掉乐观和扯淡的精神。

    February 15

    七夕

     
    君住个宝心,我居个宝眼,眼不见君心思君,莫道此情浅。
    February 07

    吸烟有害身体健康

     
    燕东有妇陈氏(化名),好烟酒之趣。适逢陈氏染奇疾,需剖腹以医。术后,陈氏居医馆数日,烟瘾难耐,遂吸数支。方解瘾,忽感其腹湿热,视之,乃干咳之力牵裂伤处。陈氏血不止,似病危笃。众医惊惧,急诊之。术间,陈氏微闻一老妪窃窃曰:“吾媳甚孝,求活之。”辨其语,乃辞世之婆婆也。数时后,陈氏血止;次日,复知觉,与医论前日之事,因知众医亦闻老妪语。
     
    异史士曰:囧rz。
    January 26

    新年愿望们

    这个时侯,外面的鞭炮声已经歇了。
    洗完了头发,换了新内衣裤。当然了,换内衣裤不是因为洗了头发。
     
    一个人插着耳机听乌鸦电台的节目。
    关注这个网站已经好几年了,像主持人daodao说的,坚持下来一直听的,和坚持下来做节目的一样不容易。
     
    企鹅上遇见了好哥们L,互相表达了不想多喝酒了的愿望和决心。同时,我们也很担心大哥H。
    他们几天前的班级聚会,大哥又动酒瓶子了。得劝劝他。
     
    妈妈身体恢复不错,已经很有力气骂我了,希望她健健康康的,多骂骂我也没关系。
    也希望爸爸的工作顺利,当然了,身体还是最重要的。
     
    山猫野兽也都要好好的,尤其是加菲猫和金毛犬。
    January 05

    乱写

    朋友们回去了,生活也渐渐回到了之前的状态,明天开始又要去实验室工作了。
    二手玫瑰唱得好,“来来来,坐过来,让我们一起吹NB”,朋友在这的几天,大家主要是在一起吹NB。不过像帅哥说的,人还是那些人,吹的已经不是当年的NB了,一年多的时间,或许心境有了些许变化。
    去冰雪大世界时,因为怕着凉,我没玩冰滑梯。这在以前,绝对不是我性格的。喝酒,都尽兴了,但不喝多。这样其实挺好的,真正的好朋友,不需要喝酒了;普通朋友间,喝酒也没用。简单说就是,我们没以前那么虎了。
    这几天,给我印象最深刻的是朋友买来生日蛋糕上的“赶紧滚!”。这几个字,信息量太大了,让我想起了二手玫瑰另一首《火车快开》,歌里唱到“我们的生活往哪开?往幸福里开吗?……”,同样的,我的生活往哪滚?往国外滚?往幸福里滚?……很喜欢这个蛋糕,比写着“万事如意”的那种,不管在视觉冲击上还是心灵震撼上都强很多,而且里面饱含了朋友对我的美好祝愿。我的把戏
    2号,相继送走了L和X。都是简单直接的人,所以省去了情深深雨蒙蒙般跟着火车跑的情节,只把L送到了科技园门口,一句“国外见,常联系。”已经足够。由于X夫妇东西太多,就把他们送到火车站,站在月台上,脑子里回响的是我们本科时修改的“长亭外,鼓捣鞭……”的淫秽、猥琐歌词,这首歌适合挺送他们的心境和情景,可是歌词有点儿……我们就是这样的恶俗人,不是诗人,可那又怎样呢?
    2009年的生活继续着,给大家的口头承诺我会尽量兑现,深圳看X,国外见L。你看得见吗?
    December 24

    事情在向好的方向发展

    事情正向着好的方向发展呢,我很欣慰。
    昨天5次,今天4次。如果按照等差数列的规律,明天3次,后天2次,大后天1次。。。
    不要出现非正值就好,这样,到了大后天,我的排便就正常了。
    希望不要按照等比数列的规律,明天要16/5次,后天64/25次,大后天256/125次。。。
    那样的话,恢复时间太长,而且,厕所有点儿去不明白了。
    还是等差吧。
    December 18

    命题

    命题A:小秘效率低下。
    命题B:名言“有事儿秘书X,没事儿X秘书。”
     
    A可以推出B,因为“。。。如果那天你不知道我发多少伊妹,你就不明白你究竟多欠捶。。。这是对秘书,最好的惩罚!”
    B可以推出A,正常因果联系。