摘要: Search III Your task is to write a program of a simple dictionary which implements the following instructions: insert str: insert a string str in to t 阅读全文
posted @ 2019-08-14 10:37 白菜茄子 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 插入排序:分为两部分:红色为已排好序的,空白的为仍未排序的。 每次的排序步骤从未排序中选出第一个让其依此与前方已排序的进行比较,看看应该处于什么位置,就把它插入进去,让其后已排序的以此向后移动一位。 第四个比第二个第三个大,但小于等于第一个,于是将第四个换到第二个位置,并将原先的第二三个依此向后移动 阅读全文
posted @ 2019-08-12 20:34 白菜茄子 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序:从第一个数开始依此与下一个数进行比较,若后者大于前者,则二者换位,否则不进行操作;然后让第二个数与下一个进行比较;依此这样进行。一次大循环会将最大的那个数,放在后面;第二次大循环会将第二大的数放在倒数第二位;依次进行。最后便是有序的升序数列。 #include<bits/stdc++.h> 阅读全文
posted @ 2019-08-12 20:34 白菜茄子 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 希尔排序是直接插入排序的一种改进(可是我觉得有点冒泡排序的意思),因为插入排序当数列越整齐则越容易进行排序列,而希尔排序就是将数列慢慢的化为更整齐的数列。 每次对间隔为q[i]的数据进行插入排序,不过最后一个q[i]一定是1,因为我是使用的动态数组进行完成的,所以是递增数列。 #include<bi 阅读全文
posted @ 2019-08-12 20:33 白菜茄子 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 选择排序分为两部分:已排好序的,未排好序的;每次从未排好里找出一个最小的值,将这个值与未排好序的第一个进行交换位置,意味着每次进行一次循环找出一个最小值就相当于将一个剩下未排序里最小的给排进去。 #include<bits/stdc++.h>using namespace std;const int 阅读全文
posted @ 2019-08-12 20:33 白菜茄子 阅读(160) 评论(0) 推荐(0) 编辑
摘要: Your task is to simulate a flood damage. For a given cross-section diagram, reports areas of flooded sections. Assume that rain is falling endlessly i 阅读全文
posted @ 2019-08-12 20:32 白菜茄子 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 此题可以利用并查集进行求解。只有两种情况可以输出Yes:连通无环;输入只有0 0;其他情况一律输出No 这道题比单纯的并查集只是多了一个判断,若是新输入的两个数是又相同的根节点,便可成环; 综上所述:只需要满足两个条件:迷宫是连通的;迷宫无环; AC代码如下: #include<iostream># 阅读全文
posted @ 2019-08-03 14:43 白菜茄子 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 在学习并查集之前,首先需要明白基本的并查集可以完成的功能。并查集主要是用于处理不相交集合的合并问题。它是一种基础算法,在离散数学中,可以利用并查集求一个图的连通分支,利用其这个特性可以为我们解决一系列的问题,例如hdu1232"畅通工程"等等。在这里便利用这道题理解并查集的基本知识。 在讲解题目之前 阅读全文
posted @ 2019-08-03 11:33 白菜茄子 阅读(370) 评论(0) 推荐(0) 编辑