随笔分类 -  ACM篇

摘要:带权并查集 【概述】 1、定义:带权并查集即是结点存有权值信息的并查集。 2、适用:当两个元素之间的关系可以量化,并且关系可以合并时,可以使用带权并查集来维护元素之间的关系。 3、权值:带权并查集每个元素的权通常描述其与并查集中祖先的关系,这种关系如何合并,路径压缩时就如何压缩。 4、与并查集的区别 阅读全文
posted @ 2018-09-24 16:00 Akmpfen 阅读(823) 评论(0) 推荐(0)
摘要:稀疏表(Sparse Table表) 解决静态RMQ,区间最值查询问题的数据结构,树状数组(BIT)解决动态前缀和问题的数据结构; 例:https://www.luogu.org/problemnew/show/P3865 原理:把给定区间分成长度是2的幂次的小区间。先预处理出它们中的最小值是多少, 阅读全文
posted @ 2018-09-23 16:50 Akmpfen 阅读(282) 评论(0) 推荐(0)
摘要:分块: 分段预处理答案,在询问时,满足一整个块的,块间暴力;不满足完整一个区域的,块内直接暴力; 莫队: 将询问存储,经过一定的方式排序,减少冗余查询的算法。 例:http://codeforces.com/contest/617/problem/E 题目大意:求给定l和r之间,连续的异或和为k的对 阅读全文
posted @ 2018-09-23 14:40 Akmpfen 阅读(134) 评论(0) 推荐(0)
摘要:一、Floyed-Warshall算法 枚举中间点起点终点,对整个图进行松弛操作,就能得到整个图的多源最短路径; 例:POJ2240 Arbitrage Arbitrage is the use of discrepancies in currency exchange rates to trans 阅读全文
posted @ 2018-09-18 14:36 Akmpfen 阅读(649) 评论(0) 推荐(0)
摘要:一、顺序查找 二、折半查找 三、二叉搜索树BST 四、B树 五、散列表,哈希hash,散列查找 散列函数的设计:1、直接定址法 H(key)= a*key +b; 2、除留余数法 H(key)=key mod p; 通常选取p为小于或等于表长(最好接近m)的最小素数或不包含小于20质因子的合数; 3 阅读全文
posted @ 2018-09-18 14:35 Akmpfen 阅读(240) 评论(0) 推荐(0)
摘要:一、单点更新 hdu1166区间和 #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int maxn=50005; const int maxnnode=1<<19; struc 阅读全文
posted @ 2018-09-18 14:35 Akmpfen 阅读(203) 评论(0) 推荐(0)
摘要:简单二叉树的建树,遍历 一、L2-006. 树的遍历 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输 阅读全文
posted @ 2018-09-18 14:18 Akmpfen 阅读(439) 评论(0) 推荐(0)
摘要:java大法好,退C保平......开玩笑的; 1、头文件: 2、程序主体,以及类名必须为Main: 3、有关函数: 运算类: 类型转换类: 进制转换类: 例:hdu1250 http://acm.hdu.edu.cn/showproblem.php?pid=1250 题目大意:斐波那契数列; 例: 阅读全文
posted @ 2018-05-17 20:18 Akmpfen 阅读(541) 评论(0) 推荐(0)
摘要:拓扑排序 有向无环图(DAG) 例1:https://hihocoder.com/problemset/problem/1174 #1174 : 拓扑排序·一 #1174 : 拓扑排序·一 描述 由于今天上课的老师讲的特别无聊,小Hi和小Ho偷偷地聊了起来。 小Ho:小Hi,你这学期有选什么课么? 阅读全文
posted @ 2018-05-04 19:18 Akmpfen 阅读(261) 评论(0) 推荐(0)
摘要:一、最小生成树MST 1.Kruskal算法 按照边的权值由小到大排序查看一遍,如果该边的两顶点不在同一连通分量里,则加入最小生成树中,可用并查集高效的判断两点是否在同一连通分量中; 例:hdu1863畅通工程 Problem Description 省政府“畅通工程”的目标是使全省任何两个村庄间都 阅读全文
posted @ 2018-04-21 16:44 Akmpfen 阅读(457) 评论(0) 推荐(0)
摘要:一、插入排序 直接插入排序:依次将待排序序列中的每一个记录插入到已排好序的序列中,直到全部记录都排好序;(折半插入排序)O(n^2) 希尔排序:先将整个待排序记录序列分割成若干个子序列,在子序列内分别进行直接插入排序,待整个序列基本有序时,再对全体记录进行一次直接插入排序;O(nlog2n)-O(n 阅读全文
posted @ 2018-04-19 19:37 Akmpfen 阅读(268) 评论(0) 推荐(0)
摘要:并查集 一、并查集维护相同集合 E - How Many Tables Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to know how many ta 阅读全文
posted @ 2018-03-16 19:10 Akmpfen 阅读(165) 评论(0) 推荐(0)
摘要:栈的应用 表达式求值 1.简单计算器 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有 阅读全文
posted @ 2018-02-19 13:13 Akmpfen 阅读(348) 评论(0) 推荐(0)
摘要:1、利用clock()函数计算程序运行时间 clock():捕捉从程序开始运行到clock() 被调用时所消耗的时间。这个时间单位是clock tick,即“时钟打点”。 常数CLK_TCK:机器时钟每秒所走的时钟打点数 2、应用实例 多项式求解 3、应用实例 最大子列 四种算法对比理解时间复杂度 阅读全文
posted @ 2017-12-09 16:03 Akmpfen 阅读(260) 评论(0) 推荐(0)