随笔分类 -  ACM相关-算法总结

摘要:简单列了一点 1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 1.2 中级数据结构 1. 堆 2. 并查集与带权并查集 3. hash 表 自然溢出 双hash 1.3 高级数据结构 1. 树状数组 2. 线段树,线段树合并 3. 平衡树 T 阅读全文
posted @ 2017-08-08 08:54 遗风忘语 阅读(210) 评论(0) 推荐(0)
摘要:"传送门" 题意 计算 $\sum_{i=1}^n(kmodi)$ 分析 1.n k 直接输出k (n k) 2.n2枚举,计算等差数列,最后处理一个[1,sqrt(k))的区间数就好了 复杂度:$2 O(sqrt(k))$ trick 代码 cpp include include include 阅读全文
posted @ 2017-04-19 20:10 遗风忘语 阅读(128) 评论(0) 推荐(0)
摘要:"中途相遇法" 最小表示法 cpp //该函数返回的是最小表示法字符串的起始位置,传入参数为字符数组地址与字符数组长度 int MinimumRepresentation(char s, int len) { int i = 0, j = 1en, k = 0, t; while(i = len ? 阅读全文
posted @ 2017-01-25 10:20 遗风忘语 阅读(116) 评论(0) 推荐(0)
摘要:八数码的八境界 研究经典问题,空说不好,我们拿出一个实际的题目来演绎。八数码问题在北大在线测评系统中有一个对应的题,题目描述如下: Eight Time Limit: 1000MS Memory Limit: 65536K Special Judge Description The 15-puzzl 阅读全文
posted @ 2016-12-23 21:58 遗风忘语 阅读(146) 评论(0) 推荐(0)
摘要:LCS问题,又称最长公共子序列问题,是DP中较简单的一种,今天我们就来简单讲解一下。 设s1:AEGLEGLLELGEL 设s2:LREGELGEGLEG 求两个字符串的最大公共子序列长度 输出:8 dp[i][j]表示匹配到s1的前i个与s2的前j个所得到的最大公共子序列长度。 转移方程: dp[ 阅读全文
posted @ 2016-09-01 09:00 遗风忘语 阅读(510) 评论(0) 推荐(0)
摘要:求最大子矩阵和是DP中的一类题目,今天我们就来讲一下一维(序列)与二维(矩阵)最大和 一.求最大连续子序列和 只需定义sum,扫一遍,sum为负时sum=0,具体见代码 #include<cstdio> #include<algorithm> using namespace std; const i 阅读全文
posted @ 2016-08-31 10:26 遗风忘语 阅读(599) 评论(0) 推荐(0)
摘要:ACM算法列表 ACM所有算法 栈,队列,链表 哈希表,哈希数组 堆,优先队列双端队列可并堆左偏堆 二叉查找树Treap伸展树 并查集集合计数问题二分图的识别 平衡二叉树 二叉排序树 线段树一维线段树二维线段树 树状数组一维树状数组N维树状数组 字典树 后缀数组,后缀树 块状链表 哈夫曼树 桶,跳跃 阅读全文
posted @ 2016-08-07 18:15 遗风忘语 阅读(433) 评论(0) 推荐(0)