摘要: 【ACM】 【计算机学科】 阅读全文
posted @ 2017-08-07 20:16 GGBeng 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 一、题目回顾 题目链接:Square 题意:给你M根木棒,请判断这些木棒能否组成正方形。 二、解题思路 DFS+剪枝 【变量说明】 sum:木棒的总长度 ave:形成的正方形的边长 maxlen:最长木棒的长度 【剪枝】 “num%4!=0”:表示木棒的总长度不是4的倍数,那么不能形成正方形 “ma 阅读全文
posted @ 2017-08-07 19:41 GGBeng 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 以如下图的无向图G4为例,进行图的深度优先搜索: 假设从顶点v1出发进行搜索,首先访问v1和v1的邻接点v2和v3,然后依次访问v2的邻接点v4和v5及v3的邻接点v6和v7,最后访问v4的邻接点v8。由于这些顶点的邻接点均已被访问,并且图中所有顶点都被访问,由些完成了图的遍历。得到的顶点访问序列为 阅读全文
posted @ 2017-08-07 18:08 GGBeng 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 以如下图的无向图G4为例,进行图的深度优先搜索: 假设从顶点v1出发进行搜索,在访问了顶点v1之后,选择邻接点v2。因为v2未曾访问,则从v2出发进行搜索。依次类推,接着从v4 、v8 、v5出发进行搜索。在访问了v5之后,由于v5的邻接点都已被访问,则搜索回到v8。由于同样的理由,搜索继续回到v4 阅读全文
posted @ 2017-08-07 16:19 GGBeng 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 【Dijkstra算法】 复杂度O(n2) 权值必须非负 【Dijkstra算法+堆优化】 复杂度O(E*logE) 使用优先队列优化Dijkstra算法 【Bellman-ford算法】 复杂度O(V*E) 可以处理负边权图 【SPFA算法】 复杂度O(K*E) 【Floyd-Warshall算法 阅读全文
posted @ 2017-08-06 19:12 GGBeng 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 一、题目回顾 题目链接:N! Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in one line, process to the end of file 阅读全文
posted @ 2017-08-06 10:17 GGBeng 阅读(144) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-08-04 21:01 GGBeng 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1 /* 数组存储 */ 2 /* 预处理 */ 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 const int maxn = 2e5+10; 9 int arr[maxn]; //存... 阅读全文
posted @ 2017-08-04 01:14 GGBeng 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 一、题目回顾 题目链接:I Hate It Problem Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学 阅读全文
posted @ 2017-08-03 22:23 GGBeng 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一、相关介绍 最短路径 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径。 Floyd算法 Warshall算法的扩展 三个for循环就可以解决问题 时间复杂度为O(n3) 二、算法介绍 【打基础】 无向带权图G Dis(AB) 节点A到节点B的最短路径的距离 辅助数组path 阅读全文
posted @ 2017-08-03 19:38 GGBeng 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 一、相关定义 map 关联容器,存储相结合形成的一个关键值和映射值的元素 提供一对一(第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可以称为该关键字的值)的数据处理能力 map对象是模板类,需要关键字和存储对象两个模板参数 特征 Map 是一种Pair Associative Con 阅读全文
posted @ 2017-08-03 11:01 GGBeng 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一、相关定义 list 链表,分配的内存不连续 可以高效地进行插入/删除元素 不可随机访问,访问速度慢 特征 只能通过迭代器来访问list中的元素 在头和尾都可以插入元素 二、list 【前提条件】 #include<list> using std::list; 【迭代器】 list<int>::i 阅读全文
posted @ 2017-08-03 09:34 GGBeng 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 一、相关介绍 在计算机科学中,二分搜索(binary search),也称折半搜索(half-interval search)、对数搜索(logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束 阅读全文
posted @ 2017-08-03 00:26 GGBeng 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 一、何为扩展 预先设定 字符串S,长度为n 字符串T,长度为m 下标i从0开始 extend[i]表示:S[i]...S[n-1]与 T 的最长相同前缀的长度 问题:求出所有的extend[i] 具体示例如下表所示: KMP 算法的功能 二、扩展KMP算法 【算法流程】 1. 如上图,假设当前遍历到 阅读全文
posted @ 2017-08-03 00:19 GGBeng 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 一、相关介绍 STL 标准模板库 在编写代码的过程中有一些程序经常会被用到,而且需求特别稳定,所以C++中把这些常用的模板做了统一的规范,慢慢的就形成了STL 提供三种类型的组件: 容器、迭代器和算法,它们都支持泛型程序设计标准 容器 顺序容器(vector、list、deque):通过元素在容器中 阅读全文
posted @ 2017-08-02 22:54 GGBeng 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 一、相关定义 set 集合,有唯一性,即每一个元素只有一个; 是一个有序的容器,里面的元素都是排序好的; 支持插入,删除,查找等操作。 注意 set中的元素可以是任意类型的,但是由于需要排序,所以元素必须有一个序,即大小的比较关系,比如整数可以用“<”比较; 不能直接改变元素值,因为那样会打乱原本正 阅读全文
posted @ 2017-08-02 22:43 GGBeng 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 一、相关定义 vector 数组 随机访问迭代器 快速随机访问元素 尾部进行快速随机地插入和删除操作 特征: 能够存放任意类型; 访问vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成; 查找特定值的元素所处的位置或是在vector中插入元素则是线性时间复杂度。 二、vector 阅读全文
posted @ 2017-08-02 10:58 GGBeng 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 一、模板&例题 【两个大数相加】 题目:光棍的yy 题解: 1 #include <iostream> 2 #include <string> 3 #include <cstdio> 4 using namespace std; 5 string sum(string s1,string s2) 6 阅读全文
posted @ 2017-08-02 08:57 GGBeng 阅读(1587) 评论(0) 推荐(1) 编辑
摘要: 【在线算法】 定义:指用户每输入一个查询便马上处理一个查询。该算法一般用较长的时间做预处理,待信息充足以后便可以用较少的时间回答每个查询。 常见在线算法:ST算法 【离线算法】 定义: 阅读全文
posted @ 2017-08-01 23:18 GGBeng 阅读(990) 评论(0) 推荐(1) 编辑
摘要: 一、题目回顾 题目链接:敌兵布阵 Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段, 阅读全文
posted @ 2017-08-01 20:07 GGBeng 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 一、相关定义 原理:stack队列是一个线性存储表,插入和删除只在栈顶进行,从而构成了一个后进先出LIFO表。 入栈&出栈:元素的插入称为入栈,元素的删除称为出栈。 stack是一种关联容器,是通过简单地修饰线性类deque的接口而获得的另一种“容器类”,往往被归结为配接器(adapter)而不是容 阅读全文
posted @ 2017-08-01 10:49 GGBeng 阅读(1116) 评论(0) 推荐(0) 编辑
摘要: 一、相关定义 优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。但是它有一个特性,就是队列中最大的元素总是位于队首,所以出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队。这点类似于给队列里的元素进行了由大到小的顺序排序。元素的比较规则默认按元素值由大到小排序,可以重载“< 阅读全文
posted @ 2017-08-01 00:24 GGBeng 阅读(69524) 评论(4) 推荐(17) 编辑
摘要: 一、相关定义 原理:queue 队列也是一个线性存储表,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出FIFO(First In First Out)表。 队头&队尾:插入一端称为队尾,删除一端称为队首。 C++队列是一种容器适配器,默认使用双端队列deque来实现,将 dequ 阅读全文
posted @ 2017-08-01 00:05 GGBeng 阅读(21952) 评论(0) 推荐(2) 编辑
摘要: 【前言】 图状结构是一种比树形结构更复杂的非线性结构。 在树状结构中,结点间具有分支层次关系,每一层的结点可以和下一层的多个结点相关,但只能和上一层中的一个结点相关。 而在图状结构中,任意两个结点之间都可能相关,即结点之间的邻接关系可以是任意的。 一、邻接矩阵 图和树一样,没有顺序映像的存储结构,但 阅读全文
posted @ 2017-07-31 10:21 GGBeng 阅读(2568) 评论(0) 推荐(0) 编辑
摘要: 一、相关介绍 最长回文子串 s="abcd", 最长回文长度为 1,即a或b或c或d s="ababa", 最长回文长度为 5,即ababa s="abccb", 最长回文长度为 4,即bccb 问题:现给你一个非常长的字符串,请求出其最长回文子串 解决方法 传统解决问题的思路是遍历每一个字符,以该 阅读全文
posted @ 2017-07-28 23:42 GGBeng 阅读(275) 评论(0) 推荐(0) 编辑