摘要: 优先队列模板 优先队列是用堆实现的,所以优先队列中的push()、pop()操作的时间复杂度都是O(nlogn)。 优先队列的初始化需要三个参数,元素类型、容器类型、比较算子。 需要熟悉的优先队列操作: 数据结构 例-百练4078:实现堆结构 AC代码 阅读全文
posted @ 2019-06-30 10:41 郭怡柔 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 动态规划典型问题模板 一、最长上升子序列(Longest increasing subsequence) 状态(最关键):f[N]为动规数组,f[i]表示从第一个字符开始,以a[i]为最后一个字符的序列的最长递增子序列的长度。 由状态引出状态转移方程,因为f[i]的设定,所以可以去比较最后一个字符从 阅读全文
posted @ 2019-06-30 00:38 郭怡柔 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 【题目自解】北京大学2017计算机学科夏令营上机考试 A:判决素数个数 (NOI 1.13编程基础之综合应用) 解题思路 两个坑,一个是x,y大小关系不确定,要写一个交换;一个是取值范围可以到100000,因此i*i到了十位数量级,在int表示中是负数(虽然我觉得没到int限制范围啊,但是测试结果确 阅读全文
posted @ 2019-06-29 22:11 郭怡柔 阅读(400) 评论(0) 推荐(0) 编辑
摘要: Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 44409 Accepted: 16184 Description A Bank plans to install a machine for cash withdrawal. Th 阅读全文
posted @ 2019-06-29 11:12 郭怡柔 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 52318 Accepted: 21912 题目链接 Description Bessie has gone to the mall's jewelry store and 阅读全文
posted @ 2019-06-29 10:46 郭怡柔 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 背包问题模板 一、0-1背包 状态:背包容量为j时,求前i个物品所能达到最大价值,设为dp[i][j]。初始时,dp[0][j](0<=j<=V)为0,没有物品也就没有价值。 状态转移方程:由上述分析,第i个物品的体积为w,价值为v,则状态转移方程为 j<w,dp[i][j] = dp[i-1][j 阅读全文
posted @ 2019-06-29 10:26 郭怡柔 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Time Limit: 1000MS Memory Limit: 65536K Description Due to recent rains, water has pooled in various places in Farmer John's field, which is repr 阅读全文
posted @ 2019-06-28 21:16 郭怡柔 阅读(204) 评论(0) 推荐(0) 编辑
摘要: POJ-图论-最短路模板 一、Floyd算法 刚读入数据时,G为读入的图邻接矩阵,更新后,G[i][j]表示结点i到结点j的最短路径长度 1.init():初始化图邻接矩阵 2.floyd():更新最短路径 例 5.5 最短路 模板代码 二、Dijkstra算法 G为图邻接矩阵,G[i][j]表示读 阅读全文
posted @ 2019-06-28 18:43 郭怡柔 阅读(288) 评论(0) 推荐(0) 编辑
摘要: POJ-图论-并查集模板 1、init:把每一个元素初始化为一个集合,初始化后每一个元素的父亲节点是它本身,每一个元素的祖先节点也是它本身(也可以根据情况而变)。 2、find(x) :查找一个元素所在的集合,即找到这个元素所在集合的祖先,判断两个元素是否属于同一集合,只要看他们所在集合的祖先是否相 阅读全文
posted @ 2019-06-28 11:57 郭怡柔 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 排序:归并排序与逆序对 一、概念 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表 阅读全文
posted @ 2019-06-27 16:10 郭怡柔 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 【题目自解】北京大学2018计算机学科夏令营上机考试 A:计算两个日期之间的天数(NOI 1.13编程基础之综合应用) 解题思路 简单题,重点在闰年的判断和闰月的设置。 AC代码 B:回文子串(NOI 1.7编程基础之字符串) 解题思路 简单题。从长度为2的回文子串开始思考,重点是回文子串的whil 阅读全文
posted @ 2019-06-27 15:58 郭怡柔 阅读(791) 评论(0) 推荐(1) 编辑
摘要: 【算法总结】图论-拓扑排序 一、概念 设有一个有向无环图(DAG 图),对其进行拓扑排序即求其中结点的一个拓扑序列,对于所有的有向边(U,V)(由U指向V),在该序列中结点U都排列在结点 V 之前。满足该要求的结点序列,被称为满足拓扑次序的序列。求这个序列的过程,被称为拓扑排序。 由满足拓扑次序序列 阅读全文
posted @ 2019-06-26 20:28 郭怡柔 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 【算法总结】图论-最短路径 一、概念 最短路径问题。即寻找图中某两个特定结点间最短的路径长度。所谓图上的路径,即从图中一个起始结点到一个终止结点途中经过的所有结点序列,路径的长度即所经过的边权和。 二、Floyd算法 用邻接矩阵保存原图,那么此时邻接矩阵中 edge[i][j]的值即表示从结点i到结 阅读全文
posted @ 2019-06-26 12:03 郭怡柔 阅读(1519) 评论(0) 推荐(0) 编辑
摘要: 【算法总结】图论-最小生成树 一、概念 在一个无向连通图中,如果存在一个连通子图包含原图中所有的结点和部分边,且这个子图不存在回路,那么我们称这个子图为原图的一棵生成树。在带权图中,所有的生成树中边权的和最小的那棵(或几棵)被称为最小生成树。 定理:在要求解的连通图中,任意选择一些点属于集合A,剩余 阅读全文
posted @ 2019-06-25 23:49 郭怡柔 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 【算法总结】图论-并查集 一、概念:并查集 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据 阅读全文
posted @ 2019-06-25 21:58 郭怡柔 阅读(738) 评论(0) 推荐(0) 编辑