自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 欧拉函数和欧拉定理

欧拉函数和欧拉定理欧拉函数的定义欧拉函数(Euler’s totient function),即 φ(n)\varphi(n)φ(n),表示的是小于等于 nnn 和 nnn 互质的数的个数。比如说 φ(1)=1\varphi(1)=1φ(1)=1。当 n 是质数的时候,显然有 φ(n)=n−1\varphi(n)=n-1φ(n)=n−1。欧拉函数的一些性质欧拉函数是积性函数。积性是什么意思呢?如果有 gcd(a,b)=1gcd(a,b)=1gcd(a,b)=1,那么 φ(a×b)=φ(a)

2021-08-28 17:38:32 353

原创 P7413 [USACO21FEB] Stone Game G

理论分析:第 iii 回合中取走的石子数量 sis_isi​ 必须整除 si+1s_{i+1}si+1​。即si+1s_{i+1}si+1​ 是 sis_isi​ 的倍数。枚举 s1s_1s1​,假设每次都只取 s1s_1s1​ 个石子,则第 iii 堆需要取 ⌊ais1⌋\lfloor \frac{a_i}{s_1}\rfloor⌊s1​ai​​⌋ 次。这是一道博弈论的题,所以我们先要考虑满足何种性质是后手必胜态,这样就可以将问题转化为:给定原始序列,求进行一次操作后使序列转化为后手必胜态

2021-08-28 17:22:30 198

原创 Luogu P7841 生成树

题意给定 nnn 个数的原始权值 wiw_iwi​,你要按照某种顺序将它们排序。若第 iii 个数的原始权值为 kkk,则第 i+1i+1i+1 到第 nnn 个数的权值均加上 (−1)i+k+1×k(-1)^{i+k+1} \times k(−1)i+k+1×k。你需要求出一种排序方案,使得 nnn 个数的权值和最大。solution理论分析我们可以看出一个数越靠前,它的贡献效果越明显,那么我们肯定希望贡献大的靠前。所以我们从 111 到 nnn 确定每一位应该放哪个数,最后再计算答案即可。

2021-08-24 06:08:16 158

原创 Luogu P7840 「PMOI-4」人赢

Luogu P7840 「PMOI-4」人赢题意给出 n,m,kn,m,kn,m,kaia_iai​ 满足如下性质:ai={n(i=1)m(i=2)ai−1×ai−2 mod 10a_i= \begin{cases} n&(i=1)\\ m&(i=2)\\ a_{i-1} \times a_{i-2} \bmod 10 \\ \end{cases}ai​=⎩⎪⎨⎪⎧​nmai−1​×ai−2​mod10​(i=1

2021-08-22 18:39:08 118

原创 莫队初步(持续更新中

一.莫队(静态莫队)我们以 Luogu P3901 数列找不同 为例讲一下静态莫队这道题是个绿题,因为数据比较弱,但真是一道良心的莫队练手题莫队是由前国家队队长莫涛发明的莫队算法的精髓就是通过合理地对询问排序,然后以较优的顺序暴力回答每个询问。处理完一个询问后,可以使用它的信息得到下一个询问区间的答案。 优雅的暴力考虑这个问题:对于上面这道题,如果我们知道区间[1,5]每个数的数量,如何求出[2,6]每个数的数量算法 1 :暴力扫一遍。 (废话)算法 2 :可以在区间[1,5]的基础上,去掉位

2021-08-22 18:38:01 65

原创 素数性质及测试法

定义:在大于1的自然数中,除了1和它本身以外不再有其他因数。性质:素数的个数无限多所有大于2的素数都可以唯一地表示成两个平方数之差当 nnn 为大于2的整数时,2n+12^n+12n+1 和 2n−12^n-12n−1 两个数中,如果其中一个数是素数,那么另一个数一定是合数如果 ppp 是素数,aaa 与 ppp 互质,那么 ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}ap−1≡1(modp)(费马小定理)素数测试法:试除法,尝试从2到

2021-08-22 18:37:14 143

原创 欧拉回路与欧拉路径

Luogu P7771 【模板】欧拉路径题意给定一个 nnn 个点 mmm 条边的有向图,求该图字典序最小的欧拉路径。数据范围对于 50% 的数据,n,m≤103n,m\le 10^3n,m≤103。对于 100% 的数据,1≤u,v≤n≤1051\leq u,v\leq n\leq 10^51≤u,v≤n≤105,m≤2×105m\leq 2\times 10^5m≤2×105。Solution:来系统地整理一下有关欧拉回路和欧拉路径的问题。什么是欧拉路径?通过图中所有边恰好一次且行遍

2021-08-22 18:36:08 420

原创 浅谈单调队列

单调队列,顾名思义就是一个元素之间的关系具有单调性的队列我们通过一道例题来讲解最大子序和给定一个长度为 NNN 的整数序列(可能有负数),从中找出一段长度不超过 MMM 的连续子序列,使得子序列中所有数的和最大。 $N,M \le 3 \cdot 10^5 $。计算“区间和”的问题,一般转化为“两个前缀和相减”的形式进行求解。我们先求出 S[i]S[i]S[i] 表示序列里前 iii 项的和,则连续子序列 [L,R][L,R][L,R] 中的数的和就等于 S[R]−S[L−1]S[R] - S[L

2021-08-22 18:35:21 82

原创 并查集浅谈

并查集(Disjoint–Set) 是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。详细地说,并查集包括如下两个基本操作:FindFindFind, 查询一个元素属于哪一个集合。MergeMergeMerge, 把两个集合合并成一个大集合。为了具体实现并查集这种数据结构,我们首先需要定义集合的表示方法。在并查集中,我们采用 “代表元” 法,即为每个集合选择一个固定的元素,作为整个集合的“代表”。其次,我们需要定义归属关系的表示方法。第一种思路是维护一个数组 fff.

2021-08-22 18:34:11 255

原创 最大子矩阵和 = 前缀和 + 最大子段和

Luogu P7741简单来说这道题就是求一个 N×MN \times MN×M 的矩阵的最大子矩阵和。(因为求的是黑色石板与白色石板的数量差,所以代表白色石板的“0”可以看作 -1,这样就将问题转化为了求最大子矩阵和)思路:首先,这个子矩阵可以是任意大小的,而且起始点也可以在任何地方,所以,要把最大子矩阵找出来,我们要考虑多种情况。假定原始矩阵的行数为 MMM,那么对于子矩阵,它的行数可以是 1 到 MMM 的任何一个数,而且,对于一个 KKK 行(K≤MK \le MK≤M)的子矩阵,它的第一

2021-08-22 18:32:56 319

原创 线段树初步

1、综述假设有编号从1到 nnn 的 nnn 个点,每个点都存了一些信息,用[L,R]表示下标从 LLL 到 RRR 的这些点。线段树的用处就是,对编号连续的一些点进行修改或者统计操作,修改和统计的复杂度都是 O(log2(n))O(log2(n))O(log2(n))。线段树的原理,就是将[1,n]分解成若干特定的子区间(数量不超过 4⋅n4 \cdot n4⋅n),然后将每个区间[L,R]都分解为少量特定的子区间,通过对这些少量子区间的修改或者统计,来实现快速对[L,R]的修改或者统计。由此看出

2021-08-22 18:19:33 70

转载 最短路径问题---Dijkstra算法详解

0. 最短路径问题介绍问题解释:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径1. Dijkstra算法介绍算法特点:迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。算法的思路Dijkstra算法采用的是一种贪心的策略需要声明一个数组 disdisdis 以及一个集合 TTTdis[i]dis[i]dis[i] 表示源点到节点 iii 的最

2021-08-22 18:17:11 301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除