- 博客(57)
- 收藏
- 关注
原创 FHQ_Treap树(无旋Treap树)模板向
这种树是一种无需旋转操作的Treap树,由FHQ(范浩强)大佬发明,堪称是神级的数据结构!他短小精悍,易于学习,而其思想的优雅令无数OIer/ACMer以及程序员们为之着迷!而这一切都来源于这一份ppt:范浩强谈数据结构在了解这个数据结构之前最好先了解一下treap树以及笛卡尔树,这两种树本身具有一定的相似性,而为FHQ_Treap提供了思想延申的起点。FHQ_Treap代替旋转操作的核心就...
2019-11-04 16:55:52 616
原创 广义高阶幂取模(模板向)
高阶幂,或者叫幂塔,指的是一个数幂次的幂次的幂次……,也就是aaa...a^{a^{a...}}aaa...而广义高阶幂则指幂塔上存在不同的数,形如a0a1a2...a_0^{a_1^{a_2...}}a0a1a2...高阶幂取模典型题目:CodeForces 906D Power Tower题目大意:就是上述的广义高阶幂去取模:给你n个数,q次查询,每次给定一个l和r,查询这n个数中...
2019-09-04 20:23:42 665
原创 2019杭电多校 Nonsense Time(hdu 6635)DP+暴力
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6635题目大意:给定一个序列,再给一个序号的序列,最开始序列都是冻住的,依次按照序号序列的顺序解冻,每解冻一个,就要求所有解冻了的元素构成的序列的最长上升子序列。解题思路:这道题有惊人的14s的时间(一开始看见都不敢做。。),所以暴力加适当的优化就能过。我们可以先把整个序列的最长上升子序列求出来,...
2019-08-14 10:18:24 389
原创 2019牛客多校第四场 K-number
题目链接:https://ac.nowcoder.com/acm/contest/884/K题目描述:300iq loves numbers who are multiple of 300.One day he got a string consisted of numbers. He wants to know how many substrings in the string are m...
2019-07-29 11:18:32 565
原创 2019牛客多校第三场 D-Big Integer(数论)
题目链接:https://ac.nowcoder.com/acm/contest/883/D题目描述:For little pupils, a very large number usually means an integer with many many digits. Let’s define a class of big integers which consists only of ...
2019-07-26 11:38:54 568
原创 2019牛客多校第二场 H-Second Large Rectangle
题目链接:https://ac.nowcoder.com/acm/contest/882/H题目大意:给定一个N行M列的01矩阵,求面积次大的全由1组成的子矩阵面积当矩阵中只存在数量小于两个这样的子矩阵时输出0解题思路:先分析特殊条件:当矩阵中只存在数量小于两个这样的子矩阵时输出0根据题目定义,任何面积大于等于2的全1矩阵都能拆成至少两个全1矩阵比如:1 1,就可以拆成 1,1,1 ...
2019-07-20 21:42:18 315
原创 poj 2559 Largest Rectangle in a Histogram(单调栈)
题目描述A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rectangles have equal widths but may have different heights. For example, the figure on the left s...
2019-07-20 10:10:29 249
原创 POJ 3685 Matrix(二分套二分)
题目描述Given a N × N matrix A, whose element in the i-th row and j-th column Aij is an number that equals i2 + 100000 × i + j2 - 100000 × j + i × j, you are to find the M-th smallest element in the matr...
2019-07-19 20:22:08 333
原创 2019牛客多校第一场 F-Random Point in Triangle
题目链接:https://ac.nowcoder.com/acm/contest/881/F题目描述Bobo has a triangle ABC with A(x1,y1), B(x2,y2) and C(x3,y3). Picking a point P uniformly in triangle ABC, he wants to know the expectation value E=...
2019-07-19 11:49:54 766 1
原创 2019牛客多校第一场 J-Fraction Comparision
题目链接:https://ac.nowcoder.com/acm/contest/881/J分析:比较x/a与y/b的大小,x, y的范围是1e18,a, b的范围是1e9,用一般的通分变成xb与ya这种交叉相乘的形式进行比较会爆long long,当然比较取巧的做法是用java大数,但正规做法是把这两个分数给他分成整数部分和小数部分,而小数部分又可以用分数来表示,比如x/a,其整数部分是x/...
2019-07-18 19:30:20 223
原创 ZOJ 3177 Elune's Arrow(解析几何)
DescriptionPriestess of the Moon (PotM) is a very interesting hero in the game Defense of the Ancients (DotA). Here is the official description of PotM:“A matriarch and high priestess of Elune’s ble...
2019-03-25 21:55:12 455 2
原创 codeforces 1029E(贪心)
DescriptionYou are given an undirected tree consisting of nn vertices. An undirected tree is a connected undirected graph with n−1n−1 edges.Your task is to add the minimum number of edges in s...
2019-03-04 20:20:08 337
原创 UVA 11752 Super Power(数论 技巧枚举)
Descripe:We all know the Super Powers of this world and how they manage to get advantages in political warfare or even in other sectors. But this is not a political platform and so we will talk about...
2019-02-27 21:19:34 292
原创 Sigma Function(因子和的性质)
Sigma FunctionTime Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %lluSubmit Status Practice LightOJ 1336DescriptionSigma function is an interesting function in Number Theory...
2019-02-26 21:19:13 1055 3
原创 sdnu 1032 简单的四维dp
1032.机器人DescriptionSYC喜欢宅在家里,但又不喜欢清理垃圾,有一天实在看不下去了,就把好友ZZK和LG叫来帮忙。没想到他俩更懒,把各自的机器人带过来了,当然,大家都不愿意为这两台机器人设计程序,所以请你来帮忙。为了运算的简单,我们将SYC的屋子看做N*M的矩阵,在矩阵的每一个坐标上都可能有不同数量的垃圾。已知开始时这两个机器人都放在矩阵的左上角,两个机器人每次都只能向右或向...
2018-12-09 21:45:10 329
原创 最长上升子序列长度及其优化与变种
【题目描述】给定N个数,求这N个数的最长上升子序列的长度。【样例输入】72 5 3 4 1 7 6【样例输出】4所谓最长上升子序列,就是给定一列数,求序列中严格上升(后一个数 > 前一个数)的子序列,这个子序列中数的位置不一定连续。这是动态规划中的一个经典应用题目,动态规划的思想就是把问题分解为一些本质上还是相同问题的小问题,这些小问题的区别仅在于输入的参数不同,而每一个小问...
2018-12-02 21:58:11 834
原创 最近看到的关于C++map的妙用 备忘录
map的基本结构一个容器,一个元素可以存一个键值和一个值,一个键值索引一个值,而每一个键值都是唯一的。键值可以是任意类型,值也可以是任意类型。延伸妙用非数值类型的索引:比如说,当你想用两个值去索引一个值的时候,你就可以把这两个值打包成一个结构体,然后把这个结构体的类型作为键值的类型。索引数值不连续的数组:当你用一堆大小不一的数值作为索引的时候,因为他们都是不同的,足以去索引什么,如果用数...
2018-11-21 22:01:04 229
原创 CodeForces 1077 D. Cutting Out
Description:You are given an array s consisting of n integers.You have to find any array t of length k such that you can cut out maximum number of copies of array t from array s.Cutting out the cop...
2018-11-20 21:39:03 835
原创 最小树形图(朱-刘算法)
概念导入:最小树形图可以简单的理解为树枝有方向的最小生成树,加上了方向的限制,使得得到它要稍微麻烦一点,解决这个问题的算法是朱永津与刘振宏在上世纪60年代提出的朱-刘算法(难得的中国人的算法)。定义:设G = (V,E)是一个有向图,它具有下述性质: 1. G中不包含有向环; 2. 存在一个顶点vi,它不是任何弧的终点,而V中的其它顶点都恰好是唯一的一条弧的终点; 则...
2018-08-13 21:56:33 823
原创 HDU6373 Pinball(模拟,物理,思维,暴力)
Description:There is a slope on the 2D plane. The lowest point of the slope is at the origin. There is a small ball falling down above the slope. Your task is to find how many times the ball has bee...
2018-08-12 21:22:15 304
原创 kuangbin八A:POJ 1679 The Unique MST(次小生成树)
Description:Given a connected undirected graph, tell if its minimum spanning tree is unique.Definition 1 (Spanning Tree): Consider a connected, undirected graph G = (V, E). A spanning tree of G is...
2018-08-09 21:03:48 226
原创 次小生成树
次小生成树定义:设 G=(V,E,w)是连通的无向图,T 是图G 的一个最小生成树。如果有另一棵树T1,满足不存在树T’,ω(T’)< ω(T1) ,则称T1是图G的次小生成树。上面是不说人话的版本,这里是说人话的版本:一个连通的无向图(连通图、无向图不用解释吧),有许多生成树,其中最小生成树是T,他的路径总长度ω(T)最小,现在找另一棵生成树T’,如果图中T是唯一的,那ω(T’)就是第...
2018-08-09 20:55:00 969
原创 生成树计数与Matrix-Tree定理
生成树计数问题:对于一个有n个点的无向图,由图中n-1条边构成一个边集,这n-1条边恰好连接图中全部的点并构成一棵树,称为生成树,求这样的边集的个数。从上面的描述中,我们知道两个不同的生成树之间是允许有重复的边的,比如: 他就有三个生成树: Matrix-Tree定理:预备概念:度矩阵 :一个n个顶点的无向图G,定义它的度数矩阵D,D是一个n*n的矩阵。对于顶点u,设...
2018-08-09 10:30:43 2335
原创 数学应用模板:求行列式
本贴是用于求行列式的模板贴。按行(列)展开递归求行列式特点:对于int型该方法是封闭的,所有过程可全部用int型完成,不需要转换成double,当然double型也可以用。struct Matrix{ int matrix[MAXN][MAXN] = {{0}}; int n; void Matrix_input(int N) { ...
2018-08-08 19:42:00 1178
原创 kuangbin六A:POJ 1251 Jungle Roads(最小生成树模板题)
Description:模板题没啥好说的prim:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int INF = 0x3f3f3f;int Map[30][30]...
2018-08-08 12:58:13 300
原创 最小生成树Prim算法与Kruskal算法
这两种算法是基于不同的角度得出的最小生成树算法,Prim是“加点法”,而Kruskal是“加边法”。下面让我们来看一看这两种算法的原理和具体实现。相关概念:连通图:在无向图中,若任意两个顶点与都有路径相通,则称该无向图为连通图。强连通图:在有向图中,若任意两个顶点与都有路径相通,则称该有向图为强连通图。连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表...
2018-08-08 11:24:49 380
原创 寂静之城
链接:https://www.zhihu.com/question/277522256/answer/396613033 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 原作:马伯庸寂静之城美利坚合众国,2015年,纽约。 当电话响起来的时候,阿瓦登正趴在电脑前面睡觉。电话铃声十分急促,尖锐,每一次振动都让他的耳膜难受好久。他揉了揉干涩的眼睛,...
2018-08-05 20:23:20 2208
原创 kuangbin带你飞系列目录与简介
kuangbin带你飞系列是由ACM圈内的一个菊苣,上海大学的邝斌(现已研究生毕业,就职于谷歌),在vjudge平台上建立的一个题目系列,从最简单的暴力搜索,到各种高深的算法与数据结构,几乎无所不包,这一套刷下来对于每一位打ACM的人来说都将是一次水平的飞跃。 目录链接:https://cn.vjudge.net/article/187 题目分级及建议顺序链接:ACM 的正确入门方式是什么? ...
2018-08-05 20:23:02 16485
原创 kuangbin五A:POJ2236 Wireless Network(并查集应用)
Description:An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wireless network with the lap computers, but an unexpected aftershock attacked, all comp...
2018-08-03 16:27:53 229
原创 并查集的实现及优化
并查集是一种用于在森林中判断子图数量及点的归属的数据结构,由于其特殊的路径压缩操作,使得这一过程可以异常地快。并查集主要由一个pre数组以及两个函数组成:find函数和join函数。 pre数组表示每一节点的前驱,最终已完成的并查集,每一个子图的所有点只有一个前驱(这也是其高效的原因),而初始化的并查集每一个点都是自己的前驱。 find函数负责寻找一个点的总前驱,比如:若有a-&amp;amp;amp;amp;amp;gt;b-...
2018-08-03 16:01:20 438
原创 Floyd-Warshall算法
说实话,在一开始没学的时候还觉得挺高大上的算法,学了之后发现,最短路四大算法,这是最暴力的一个。。Floyd-Warshall算法,一般也叫Floyd算法,这个算法正如网传的那样:核心算法只有5行:for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) for(int k = 1; k <...
2018-08-02 14:23:28 1617
原创 Dijkstra算法及其优化(Dijkstra+heap)
Dijkstra(迪杰斯特拉)算法是一种经典的求单源最短路的算法,大体上就是利用已经找到的点的最短路去推其他点的最短路。我们先将图中的点分为两部分:S:已经找到最短路的点T:图G - S,剩下的点具体过程如下:将dis数组初始化为INF,源点s,dis[s] = 0,s点加入S集,s点为当前点重复以下步骤:遍历当前点的子点,如果当前点的子点dis值 > d...
2018-08-01 20:41:14 6684
原创 SPFA算法以及其优化
SPFA算法(Shortest Path Faster Algorithm),是经队列优化的单源最短路Bellman-Ford算法通常用于求含负权边的单源最短路径,以及判负权环。SPFA算法最坏情况下复杂度和朴素的Bellman-Ford算法相同,为O(VE),一般情况为O(kE),其中k为常数,由图的边权分布决定,所以复杂度不是很稳定,如若必须要避免最坏情况的出现,通常使用效率更加稳定的Dijk...
2018-08-01 15:06:40 1158
原创 Bellman-Ford算法求最短路
图论中比较基础的问题,求单源最短路,即在图中找一个点作为起点,求他到其他点的最短路,而Bellman-Ford算法是其中最简单的算法,相应地,其复杂度也比较高,效率也比较低,但是,他却可以判断图中是否存在负权回路(走一圈经过的权值是负数),因此可以处理带有负权边的图,且该算法是其他各种最短路算法的原始型,应当受到足够的重视。设有图G&lt; V, E &gt;,点数为V,边数为E,源点为s点。...
2018-07-31 17:51:28 1004
原创 链式前向星
我们在图论题目的代码编写中一般会涉及到图的储存问题,通常的存图的方法是邻接矩阵和邻接链表,这两者比较简单,不做过多介绍。不过,这两者一个当面对稀疏图时占的内存过大,一个因为是链表操作又太慢,而且链表的节点比矩阵的节点占内存大,节点一多一样很占空间,这两者都不是那种比较理想的存图方式,而链式前向星综合了他们的优点,很好的解决了这些问题。不得不说,思路是相当巧妙的。链式前向星是一种特殊的边集,从前...
2018-07-31 10:47:36 298
转载 ACM博弈知识总结及相关例题
由于一直没接触博弈,我已经被博弈题坑了好几把了,所以有了这篇写给自己的学习历程博弈博弈:有若干堆物体(可以是火柴棍或是围棋子等等)两个人轮流从堆中取物体若干,规定最后取光物体者取胜。1.由于博弈双方都能做出最优决策,所以游戏刚开始就意味着结束(好惨,一点游戏体验都没有~),因此博弈能否胜利取决于当前的局面2..局面是博弈里面最最最重要的东西!!!(所谓SG也是指这一局面的SG)...
2018-07-30 14:01:16 309
原创 归并排序求逆序数
归并排序是一种分治思想下的排序算法:将待排序序列不断划分(一般是二分)为多个更小的序列,直至不可划分,然后使每个最小区间内部是有序的(最小区间一般只有一个数,自然是有序的),然后再逆着刚才的划分过程不断地将小区间合并为较大的区间(这里是整个算法实现排序的核心,主要的计算量之所在),最终逆过程结束后,排序完成。具体如下图(图片来自百度百科): 我们不难看出,该算法是稳定的,也就是说:对于每...
2018-07-30 11:44:14 3267
原创 容斥原理
今年省赛被这个题坑了。。。才发现竟然不知道这个重要的知识。在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 ——百度百科对于两个集合,该定理为:A∪B=A+B-...
2018-07-30 10:28:17 293
原创 kuangbin三Dancing Links合集
Dancing Links,跳舞链,是一种数据结构以及配套的算法,用于解决精确覆盖问题与重复覆盖问题。具体讲解博客链接: https://www.cnblogs.com/grenet/p/3145800.html https://www.cnblogs.com/wujiechao/p/5767124.htmlZOJ3029 Treasure Map:#include &lt;io...
2018-07-30 09:51:41 225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人