
算法
Ablossom
这个作者很懒,什么都没留下…
展开
-
M - 灾难预警——浙江农林大学天梯
题目描述众所周知,浙农林是一条河。由于浙江农林大学的特殊地形,当你在下雨后漫步在农林大路上的时候难免会出现一脚踩进一个水坑的情况的情况。而农农非常不喜欢踩到水坑的感觉,请你帮忙设计一个程序来帮助农农判断他能否在不踩入水坑的情况下回到寝室。已知,浙江农林大学可以表示为一个 N * N 的矩阵。对于每个位置有一个海拔数据 h[i][j],当水位高度大于 h[i][j] 的时候,这个位置就会形成一个水坑。农农现在的坐标是 (1, 1), 他的宿舍位于 (n, n).农农只可以沿着上下左右四个原创 2020-10-24 23:14:19 · 208 阅读 · 0 评论 -
单调队列之滑动窗口
单调队列解决大小为k的区间的最值问题,区别于RMQ和线段树的是,单调队列允许移动k区间,时间复杂度O(n)滑动窗口给定一个大小为n≤1e6的数组。有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。您只能在窗口中看到k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[1 3 -1 -3 5 3 6 7],k为3。求出每个k大小区间的最大值和最小值。思路:维护队列的单调性,往队尾插入元素之前,先将队尾大于等于当前数的元素全部弹出即可;这样所有数均只进队一次,出队一次,时间原创 2020-07-15 11:39:12 · 378 阅读 · 0 评论 -
解决逆元的问题!
一、费马小定理由费马小定理a^(p-1)≡ 1(mod p)(p为素数),稍作变形即是 a^(p-2)≡ 1(mod p),是不是发现了,a^(p-2)即是a的逆元,这个可以用快速幂来求。(关于快速幂请看:快速幂)二、O(n)递推求1~n的逆元首先,1的逆元是1。假设前i个数的逆元已经求出,那么i^-1 = (p%i)^-1 * (p - [p/i]) % p。其中[]表示向下取整。...原创 2020-04-30 19:41:11 · 406 阅读 · 0 评论 -
【算法】最小表示法
问题给定字符串,字符串首尾连接,可以转换(即s=“ooab”,可以转换成"oabo",“aboo”,“booa”),求出所有形式中字典序最小的一种,最小表示法求出的是字典序最小的首字母在原串中的位置可以参考博客(内有详细解释):https://blog.youkuaiyun.com/li1615882553/article/details/80136776int getmin(){ int l...原创 2019-09-11 15:35:09 · 256 阅读 · 0 评论 -
【算法】同余问题
1同余概述1.1基本定义和定理给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m),并称该式子为同余式。2.整数的集合被分为m个不同的集合,这些集合被称为模m剩余类(同余类)。每个同余类中的任意两个整数都是模m同余的。a≡b(mod m),当且仅当m|(a-b)。a≡b(mod m),当且仅当存...原创 2019-08-09 17:42:03 · 2258 阅读 · 0 评论 -
南蛮图腾
南蛮图腾【分治递归】题目链接:https://www.luogu.org/problem/P1498题目描述自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到...原创 2019-08-02 14:06:07 · 809 阅读 · 0 评论 -
【算法】欧拉回路
欧拉路径在一个图中,由i点出发,将每个边遍历一次最终到达j点的一条路径。欧拉回路:i=j时的欧拉路径。一些概念图中的度:就是指和该顶点相关联的边数在有向图中,度又分为入度和出度。入度 (in-degree) :以某顶点为弧头,终止于该顶点的弧的数目称为该顶点的入度。出度 (out-degree) :以某顶点为弧尾,起始于该顶点的弧的数目称为该顶点的出度。在某顶点的入度和出度的和称为...原创 2019-08-06 15:28:15 · 3757 阅读 · 3 评论 -
快速幂
题目链接:https://www.luogu.org/problem/P1226洛谷:快速幂模板题题目描述输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。输入格式三个整数b,p,k.输出格式输出“b^p mod k=s”s为运算结果思路自定义快速幂函数可用二分思想对b进行处理,如果b为奇数,则b=b/2 * b/2 *b,b为偶数,则b=b/2 * ...原创 2019-08-01 21:31:14 · 382 阅读 · 0 评论 -
排列函数
头文件algorithm函数名next_permutation()排列函数,有时候挺好用的P1088 火星人题目链接:https://www.luogu.org/problem/P1088题目描述人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家...原创 2019-08-03 18:40:05 · 547 阅读 · 0 评论