Rafy

stay Foolish , stay Hungry

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年3月16日

摘要: 题目链接:http://pat.zju.edu.cn/contests/pat-practise/1004该题是个模拟类吧,个人觉得,题目要求计算出家谱树中每一层的叶节点个数,因为只是数数目,所以在做题的时候可以用一些小聪明省去不需要的内存开销和逻辑处理,比如不需要记录某一个结点有多少孩子,更不用提这些孩子都是哪些结点,只用记录一个值:该节点有没有孩子;还有就是记录该节点所在层数,自己确定根结点在第一层,然后根据输入的家谱关系更新所有结点的level值,所以树中节点的结构体为:1 typedef struct2 {3 int level;//该结点所在层数4 int haveC... 阅读全文
posted @ 2012-03-16 13:27 Rafy 阅读(1485) 评论(0) 推荐(0) 编辑

摘要: 题目链接:http://pat.zju.edu.cn/contests/pat-practise/1003这道题目是让求图中两节点之间的最短路径条数,同时求出这些最短路径中权值相加最大值,可以通过修改Dijkstra算法解题,不过我用的是深度优先搜索,书上总是说递归的程序比非递归程序容易看懂,而且逻辑也符合正常思维方式,可我却对递归结构很不感冒,确实,递归随随便便5行代码,可能用栈需要20+行才能模拟出来,但是我还是偏好于非递归实现,至少我觉得这个符合自己的思维习惯,话说回来,不用DJ,而采用深搜解这道题,也是因为深搜更容易想到而且能够想通,毕竟,暴力是蛮荒时代的本色,而能想出巧力的头脑都是苹 阅读全文
posted @ 2012-03-16 10:34 Rafy 阅读(1584) 评论(0) 推荐(0) 编辑