ACM解题报告
文章平均质量分 73
树袋大熊
只是在走一个CSer应该走的路
展开
-
PKU 3964 无向图广度遍历
题意:已经一个5*5的二维数组,共中0代表可通过,1代表不可。求(0,0)到(4,4)即对角线的最短路,只允许上下左右走。 分析:因为求最短路径,所以是BFS不可DFS。关键在于如何记录走过路径,路径队列每次加入新节点务必记录它的前驱节点,遍历结束后从终点依照前驱节一直找到源点求最短路径(由源点向终点可能多解,需要处理),然后用辅助栈反序。原创 2011-05-12 20:06:00 · 665 阅读 · 0 评论 -
IT公司2012笔面杂谈
搜狗笔试感想 选择: 1、顺序、查半、分块、hash查找时间效率比较(顺序 2、排序空间占用(快排O(lgn),归并O(n),其它O(1)) 3、三星指针(理解&a+1和取*操作) #include int main() { const char *c[]={"enter", "new", "point", "first"}; const char **cp[]={c+3,c原创 2011-10-27 17:58:35 · 2583 阅读 · 0 评论 -
Google2012笔试题感想
一、选择 1、哪些不是加密算法?(MD5) A、MD5 B、DES C、RC4 D、RSA 2、垃圾回收相关表述错误?(B、计数引用不能处理循环引用,但垃圾回收可以,所以A没错) A、垃圾回收可以处理循环引用 B、垃圾回收就不会有内存泄漏原创 2011-10-14 00:04:06 · 1342 阅读 · 1 评论 -
搜狗2012笔试、面试体会
一、C/C++(10道) 1、求输出 int a[]={1,2,3,4,5} int*ptr = (int*)(&a+1) printf("%d %d", *(a+1), *(ptr-1)); 答:a与&a的地址是一个,&a的类型是int[5],所以打原创 2011-10-12 18:26:13 · 3585 阅读 · 0 评论 -
EMC2012笔试体会
一、不定项选择题(主要分析一下考察重点) PART1: //语言知识 1、引用不用指向临时变量原因 2、类型安全检查的好处 3、interface derivation/implementation derivation区别 4、virtual可重写问题 5、top原创 2011-09-25 20:17:04 · 2374 阅读 · 0 评论 -
PKU 3624 0-1背包
题意:标准的0-1背包问题。内存方面使用滚动数组。时间方面可以先对W[]进行非升排序。本来在输入数据时候还打算记录最小重量,在knap时候进行优化,但发现结果没有什么变量,所以并没有加上。原创 2011-04-26 19:12:00 · 590 阅读 · 0 评论 -
PKU 1001 高精度乘幂
<br />题目: 求Rn ,其中R是一个实数范围是 0.0 < R < 99.999 ,n是一个整数的范围是 0 < n <= 25. <br />分析:高精度运算,字串符模拟数值运算。需要注意的是各种输入格式处理:123, 0123, 012.3, 123., 123.0, 123.01, .123, .1230等等,我的方法是先把如上这些情况输入处理成(123,0),(123,0),(123,1),(123,0),(123,0),(12301,2),(123,3),(123,3)这些形式。即删除小数点原创 2011-04-12 20:37:00 · 1118 阅读 · 1 评论 -
PKU 1062 单源最短路径
背景:有向图G=(V,E),求源点s的单源最短路径问题。解决方案为Dijkstra算法。算法描述:1、把源点v0放入到集合S中,计数器c=0。每个结点一个结构数据d(a,b), a表示到v0的最短路径长,b表示a的前趋节点。 初始化v0为d(0,-)并且除v0外的所有节点为d(INF,-)。这里面INF表示无穷大。2、通过遍历集合S中所有节点v,来更新非集合S中所有节点u.更新条件为 d[u].first = min{du[u].first, d[v].first +原创 2011-04-12 10:26:00 · 880 阅读 · 0 评论 -
PKU 1087 网络最大流
题意:现在有m个设备,n种电源插座,k个适配器。适配器a b作用为可以把a插头转成b插头,也就是原来用a电源的设备现在可以用b电源需要注意的几点:1、"only one receptacle of each type",对于n种电源插座,每种类型只有一个2、"No two devices will have exactly the same name",对于m个设备,彼此不相同3、14、适配器的数量是无限的5、求最小几个设置没有电源分析:一道很标准的网络最大流问题,关键在于建图1、取源点、汇点分别标号0,1原创 2011-04-11 16:40:00 · 855 阅读 · 1 评论 -
PKU 1251 最小生成树
背景: 无向连通图G=(V,E)的最小生成树算法: 1.prim算法: (1)初始顶点集合S为空,把任意一个顶点s加入集合S. (2)迭代|V|-1次,每次加入顶点u,使得v属于S,u不属于S并且(u,v)权值最小, 记录边(u,v) (3)所有记录过的边(u,v)即最小生成树 2.kruskal算法: (1)把有|E|中边按权值非降排序 (2)边初始集合S为空,每次加入权值最小的边,当加入后边集合不构成回路,删掉此边。回路判定可以采取并查集方法 (3)边集合为最小生成树原创 2011-04-11 10:46:00 · 717 阅读 · 0 评论 -
PKU 2488 深度优先搜索
<br />背景:对于有些问题没有好的算法去求解,只能通过遍历搜索的方式寻找可行解,此时就用到了宽度优先搜索和深度优先搜索。深度优先搜索用栈实现,可以利用系统的栈区递归调用,也可以自己维护好结构。一般来说,自己维护栈对空间的把握更准确一些,而且调试也更方便一些。不过递归调用的方式有时确会写出很漂亮的代码,深度搜索随着问题规模增加时间开销会显著增加,此时必须通过一些剪枝技术来进行优化。宽度优先搜索用队列来实现,随问题规模增加空间开销会显著增加。<br /> <br />题意:给出棋盘行列数,求从(1,1)点能原创 2011-04-14 10:31:00 · 1103 阅读 · 0 评论 -
PKU 1002 计数排序
题意:输入N个(0分析:简单字符串处理与排序。数据规模比较大,一般的排序很可能超时。这里采用空间换时间的计数排序,字母数字转换采用哈希表。原创 2011-05-17 10:46:00 · 782 阅读 · 0 评论 -
PKU 2418 字符串排序
题意:输入N(0分析:这里采用两种方法,一种是qsort,还有一种BST.原创 2011-05-17 16:21:00 · 615 阅读 · 0 评论 -
PKU 1088 DP
题意:一个r行、c列二维数组,每一点有一高度值,求最长的连续严格单调序列长度。分析:把所有点按从小到大排序,然后依次处理。如果当前点高度小于四周点高度,则最长序列长度为1.否则为四周点中高度小于此点的最大值加1。这是因为高度小的点先被处理。四周点只是上、下、左、右四点,不包括斜着的邻近点。另外为了方便逻辑处理,可以在二维数组加一圈外围。C源码:原创 2011-05-14 13:33:00 · 584 阅读 · 0 评论