摘要: 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1~N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人; 2.2~N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1~i 1中某位同学(即之前已经入列的同学)的左边或右边; 3.从队列中 阅读全文
posted @ 2017-04-07 22:06 dustbin 阅读(606) 评论(0) 推荐(0)
摘要: 题目描述 设有N N的方格图(N0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0 0 0 15 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 某 阅读全文
posted @ 2017-04-04 19:13 dustbin 阅读(2330) 评论(0) 推荐(0)
摘要: 动态规划经典题,并整理到博客上 基础数据结构 栈,单调栈 队列,单调队列,双端队列 链表,双向链表 中级数据结构 堆 并查集,带权并查集 图论 复习最短路算法 复习最小生成树算法 复习拓扑排序 《C++ Primer》 变量和基本类型 string vector 《C++ Primer》的内容我会发 阅读全文
posted @ 2017-03-26 18:29 dustbin 阅读(110) 评论(0) 推荐(0)
摘要: 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分 输入输出格式 输入格式: 数据的第1行试正整数N,1≤N≤100,表示有N堆石 阅读全文
posted @ 2017-03-11 22:45 dustbin 阅读(4400) 评论(0) 推荐(0)
摘要: 算法原理 每次扩展一个距离最小的点,再更新与其相邻的点的距离。 如何寻找距离最小的点 普通的Dijkstra算法的思路是直接 优化方案是建一个小根堆,小根堆里存储由当前结点更新距离的所有点,那么堆顶就是距离最小的点 如何寻找与源点相邻的点 当然是邻接表 具体实现 建一个小根堆 ,用来存储结点的序号, 阅读全文
posted @ 2017-02-26 16:01 dustbin 阅读(4566) 评论(0) 推荐(1)