刷题
flash_gogogo
这个作者很懒,什么都没留下…
展开
-
UVA12096,STL stack和set,Map的综合运用
&emsp;紫书的STL介绍,比较抽象,教我们怎么表示一些抽象的集合并进行一些简单的操作,其中Set_Set_ID和vector Set_Set;是关键,然后关于set_union,set_intersection在下面链接中有介绍> http://blog.chinaunix.net/uid-9950859-id-99130.html#include <iostream> #include原创 2017-04-08 23:03:18 · 249 阅读 · 0 评论 -
(二叉树)求树的最小深度,平衡树的判定,判定树是否相同,判定对称树
本篇文章主要对树的常见的算法做一个总结,如果知道思路,写起来代码是非常简单的,不了解的话可能代码会又臭又长,标题中的4类问题在本文中均由DFS实现。1、求树的最小深度给出一道leetcode题目 111. Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. The minimum depth is原创 2017-08-15 12:40:10 · 609 阅读 · 0 评论 -
UVA1625颜色的长度
题目有点困难,我一开始只想到了暴利解法,但是肯定会超时的,照着紫书上讲解的方法看了代码仓的代码才明白过来。 题意:输入两个长度分别为n和m的颜色序列,要求按顺序合并成同一个序列,即每次可以把一个序列开头的颜色放到新序列的尾部。对于每个颜色c来说,其跨度L(c)等于最大位置和最小位置之差。思路:我们用d(i,j)表示两个序列已经分别移走了i和j个元素时的最小代价。当然为了在状态转移时知道每个字母的状原创 2017-08-07 11:59:21 · 700 阅读 · 0 评论 -
Partitioning by Palindromes UVA - 11584
题目: 求出字符串中回文串序列数最小是多少。UAV11584 思路很简单,状态d(i)表示成前i个子串中的回文序列数目的最小值,那么状态转移方程为d(i)=min(d(i),d(j)+1)(当str(i,j)为回文串时),注意对d(i)的初始化,然后每次判断str(j+1,i),因为d(j)(也就是j以前的最小串的数值)我已经知道了。 AC代码:// UVA11584.cpp : 定义控制台应原创 2017-08-06 21:28:59 · 146 阅读 · 0 评论 -
UVA11400照明系统设计
题目如下: You are given the task to design a lighting system for a huge conference hall. After doing a lot of calculation and sketching, you have figured out the requirements for an energy-efficient desi原创 2017-08-06 14:19:27 · 393 阅读 · 0 评论 -
Poj1651 矩阵链乘
题目没有以明显得矩阵链乘的形式给出来,但是按照它的规则去做就发现是可以转换成矩阵连乘的,注意些递推程序的时候,长区间的值要依赖短区间的值,所以还要有区间长度的循环,并且每次进入新的长区间进行划分之前,都要用短区间来更新长区间的初值// POJ1651.cpp : 定义控制台应用程序的入口点。//#include <iostream>#include <algorithm>#include <c原创 2017-08-07 16:58:31 · 206 阅读 · 0 评论 -
八皇后问题
在回溯法的运用中的经典案例,问题如下: 在棋盘上放置8个皇后,使得他们互相不能攻击到,此时每个皇后的攻击范围为同行同列和同对角线(主副对角线),要求找出所有解。 这是问题的一个解 我们使用递归枚举(也就是回溯法)来求解这个问题。 先分析下问题的规模:从0行开始到第7行每行都必须有一个皇后,所以固定了行之后,按列来算就是全排列问题,排列数是8!=40320个,枚举数是不会超过它的,所以问题原创 2017-07-15 21:55:43 · 297 阅读 · 0 评论 -
快速排序及其优化
快速排序的实现方式很多,看了一篇博客之后觉得他的实现方式最简洁。算法思路主要为: 1、先重排,选取一个基准值(可以每次选左边的,也可以随机选一个),使左边的元素都小于这个基准值,右边的元素都大于这个基准值。 2、递归求解。 详细一点的说来第一步的方法就是: 以6,10,22,15,3,4,8,12这一组数A为例。 第一步:选取最左端的6作为基准值comp=6,m=0,然后依次与A[1],A原创 2017-07-03 16:43:48 · 298 阅读 · 0 评论 -
UVa 548 Tree(DFS) 根据中序和后序重建二叉树,数组实现和指针实现
题目如下: 给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍 历,找一个叶子使得它到根的路径上的权和最小。如果有多解,该叶子本身的权应尽量小。 输入中每两行表示一棵树,其中第一行为中序遍历,第二行为后序遍历。 样例输入: 3 2 1 4 5 7 6 3 1 2 5 6 7 4 7 8 11 3 5 16 12 18 8 3 11 7 16 18 12 5原创 2017-04-26 22:28:06 · 401 阅读 · 0 评论 -
UVA11988(破损键盘) 使用数组模拟链表插入
开始刷数据结构相关的题了,在笔试和面试过程中如果要写出指针形式的链表时间上可能不够。该题很好地训练了怎么使用数组来模拟链表 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988) 你有一个破损的键盘。键盘上的所有键都可以正常工作,但有时Home键或者End键会自 动按下。你并不知道键盘存在这一问题,而是专心地打稿子,甚至原创 2017-04-14 19:39:56 · 2026 阅读 · 1 评论 -
hdu1204 Markov随机过程
这是一个概率题,首先我们必须清楚我们要求的是什么!设f(i)表示Speakless有i颗糖果的时候赢的概率,我们要求的就是f(n) 则根据题意我们知道,这时候: 1.Speakless赢这一局的概率是p(1-q),即f(i)变成f(i+1) 2.Speakless输这一局的概率是q(1-p),即f(i)变成f(i-1) 3.Speakless平这一局的概率是1-p(1-q)-q(1-p),即原创 2017-04-01 20:26:00 · 404 阅读 · 0 评论 -
uva156
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-04-01 19:43:23 · 266 阅读 · 0 评论 -
UVA540 STL中队列的使用
这题让我们熟悉了STL中队列的使用,和上一篇博客中提到的集合的嵌套类似,这个题目中设计到了队列的嵌套,所以可以用map容器给不同的队列映射一个ID来区分。 关于queue容器的使用介绍 题目如下: Queues and Priority Queues are data structures which are known to most computer scientists. The Te原创 2017-04-09 14:24:47 · 297 阅读 · 0 评论 -
初始化二维vector的方法
初始化二维vector,为r*c的vector,所有值为0.1.直接用初始化方法(刚开始没想到)“vector2.用resize()来控制大小vector转载 2017-08-15 21:27:35 · 1090 阅读 · 0 评论