281654814

 

近期学习总结

     近两周,一直在做poj上的题,按照网上的一份训练方案,下面是一些总结。
     枚举题1753:此题其实是一道bsf搜索的题,由于每个位置的颜色有两种,所以用16个二进制位代替整个正方形。然后,编写一个翻转的函数,要处理好边界问题,我就是在这有一个小疏忽,搞了半天。接着就是广搜了,先定义一个queue,和一个记录已经访问过的情况的数组visit[65540],理论上每个节点有16个分支,但还要抛去已经访问过的,所以也就不确定是多少了。同时判断是否符合结果,也就是0xffff或是0x0000。搜完之后会发现,哦,这也就是把所有的情况都枚举了。
    * 枚举题2965:现在也没过,5次TLE,然后是3次WA,其实这题跟上题基本是一样的,就是时间上有点吃紧,我把bitset改成自定义的int型,然后用<<,|,&进行操作,结果就WA,查了两天没查出来,等等在说吧。
    *贪心算法1328:这是我第一道贪心题,8次WA,2次CE,把我终结了,最终没搞定,discuss了一下,我的思路一点问题没有,还是程序中有小的问题,依然等有时间再找吧。
    贪心2109:最初这题令我费解了很久,以为是大数乘法。有discuss了一下,发现我基础太烂了,double都够了都不用long double,还有学到了一个新函数pow(p, 1/n ),这么写是开平方的。这题基本上是大家眼中的水题,还有一点不太明白,就是精度的损失好像没有考虑到,这题真的不用考虑精度的损失吗?系统的给的测试案例到底是怎么给的,好像有蒙的成分啊。
     *贪心2586:根本就没看明白题意,百度了一下,看明白的,自己也没编,手懒。
     广搜3278:奶牛是不动的,很好。这题也是典型的广搜,每个节点有三个分支,这里我使用了一个maxnum来确定visied[ ]数组的大小maxnum又是第一个大于100000的x*=2的x值。超过maxnum的数不会被放入队列中。
     **广搜1426:一次MLE一次TLE,让我明白了,我这个程序整体思路有问题,于是discuss一下。发现了一个巨牛的人,用了不到二十行的代码搞定了,16ms,可能不怪别人牛,是我太菜了。我花了一个小时的时间看懂了他的程序,原来还有这么牛的广搜,这哥们二叉树一定掌握的非常好,可以说是十分的透彻。我激动不已,直接把他的代码照打下来,加了几个换行,提交。
     广搜3126:又一道,WA的题,只WA了一次我就没心情了。现在回头看这题,我的没有找到思路上的错误,其实肯定是存在的,我连案例的输入都好像没过。
     广搜3087:这题比较顺利,也没有discuss,我刚开始想复杂了,以为有两种洗牌的顺序,又仔细看了一遍题确定就一个顺序,ok,一次AC。对了,这里我还犯了一个巨傻的错误,浪费了我好几个小时,就是string类型的+=操作会有一些问题,也没看STL的具体怎么定义反正以后不能这么用了。
     *广搜3414:因为以前做过一道类似的,以为直接搜就可以了,WA四次之后我仔细看了一下题,妈的,要的是最少的次数,太疏忽了,到现在这题也没心情做了。
     排序2388:一道很简单,很没什么问题的题,结果CE两次,一看,原来sort( )要叫头文件的,可是在devcpp中不用加也能过,这点以后要牢记。这题我又自己编了一个quicksort结果和STL中的sort( )时间一样都不是很快,很想知道哪些大牛是怎么20K,0MS通过的,真的很想知道。
     排序2299:自己开始傻傻的编了一个冒泡,自测了一下慢的像蜗牛。知道有问题了,看了一下分类原来是二路归并加逆序数,于是我又编写了我第一个二路归并,并参透了在二路归并中加入逆序数记录的小秘密。
     高效查找3349:第一个hash查找,费了半天筋,原来比较要在插入的时候就进行,因为插入时在查找。还有我自己设计的开放地址对的代码怎么都是太慢75000就已经不行了,后来借鉴了一个同学的模拟拉链法,发先自己原来写的那个根本就是一个错误的效率低下的hash。还有就是12中情况的考虑中除了点小麻烦,很快解决了,一次AC。
     最终总结一下:做了12道题,成功了8道,至少我是懂了8道。重要的是实现了一下以前没有实现的数据结构,长知识了。

posted on 2009-09-07 20:53 menglailai 阅读(127) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理


导航

统计

常用链接

留言簿

文章档案

搜索

最新评论