AC 数学
文章平均质量分 69
AcWing、洛谷、CodeForces 数学
记录算法题解
算法与数学
展开
-
【ACWing】108. 奇数码问题
在游戏过程中,可以把空格与其上、下、左、右四个方向之一的数字交换(如果存在)。现在给定两个奇数码游戏的局面,请判断是否存在一种移动空格的方式,使得其中一个局面可以变化到另一个局面。的一行的时候逆序对的个数的奇偶性相同。代表空格,其余数值与奇数码游戏中的意义相同,保证这些整数的分布不重不漏。空格移动的规则与八数码游戏相同,实际上,八数码就是一个。你一定玩过八数码游戏,它实际上是在一个。对于每组数据,若两个局面可达,输出。奇数码游戏是它的一个扩展,在一个。个整数,表示第一个局面。个整数,表示第二个局面。原创 2024-01-28 19:01:39 · 884 阅读 · 0 评论 -
【ACWing】105. 七夕祭
虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧、苹果糖、棉花糖、射的屋……Vani预先联系了七夕祭的负责人zhq,希望能够通过恰当地布置会场,使得各行中cl感兴趣的摊点数一样多,并且各列中cl感兴趣的摊点数也一样多。不过zhq告诉Vani,摊点已经随意布置完毕了,如果想满足cl的要求,唯一的调整方式就是交换两个相邻的摊点。由于zhq率领的TYVJ开发小组成功地扭曲了空间,每一行或每一列的第一个位置和最后一个位置也算作相邻。如果只能使各列中cl感兴趣的摊点数一样多,输出。原创 2024-01-28 18:36:59 · 873 阅读 · 0 评论 -
【ACWing】122. 糖果传递(配数学证明)
如果整个图是一个圈,那我们将每条边的边权都减去最小边权,显然仍然是一个方案,这个方案里原先图的最小边权变为了。对于环形的情况,容易证明,所有的最优的交换方案里,一定存在一个方案,在这个方案中有两个人相邻但没有交换糖果。如果整个图不是一个圈,说明一定存在某个人只是给邻居糖果而没有从别人那里拿,比如这个人号码是。,可以参考均分纸牌里的证明,结论也正确。最小代价其实就是均分纸牌那道题的移动方式,证明其实是类似的。如果不是环形的,而是坐成一排,那么问题就变为“均分纸牌”,参考。个糖果,这样的方案仍然是最优解。原创 2024-01-28 17:43:15 · 978 阅读 · 0 评论 -
【ACWing】130. 火车进出栈问题
,这样答案分解质因数之后的素数有哪些就确定了,接着我们就计算答案里每个素数的幂是多少,容易知道。里各个素数的幂次之后,最后做一次高精度乘法即可。由于答案可能非常长,我们需要压位。本题数据范围太大,我们可以采取分解质因数的方式来算。每节车厢有两种运动方式,进栈与出栈,问。节车厢出栈的可能排列方式有多少种。节车厢出栈的可能排列方式数量。,所以我们先用欧拉筛筛出。,代表火车的车厢数。原创 2024-01-22 05:44:27 · 830 阅读 · 0 评论 -
【ACWing】124. 数的进制转换
接下来每一行都包含三个数字,首先是输入进制(十进制表示),然后是输出进制(十进制表示),最后是用输入进制表示的输入数字,数字之间用空格隔开。第一行包含两个数字,首先是输入进制(十进制表示),然后是用输入进制表示的输入数字。第二行包含两个数字,首先是输出进制(十进制表示),然后是用输出进制表示的输入数字。需要注意的是,并不需要真的将输入转为十进制再存,每一位直接存。编写一个程序,可以实现将一个数字由一个进制转换为另一个进制。表示的数字会以对数的速度变小,所以时间是很快的。即可,如果输入进制是。原创 2023-10-08 07:51:33 · 46 阅读 · 0 评论 -
【ACWing】4976. 倍增
你可以对该序列进行任意次倍增操作(也可以不进行任何操作)。每次倍增操作可以任选序列中的一个元素,并将其乘以。我们的目标是让序列中所有元素的值都相等。请你判断,目标是否能够实现。如果可以让序列中所有元素的值都相等,则输出。原创 2023-09-02 14:48:48 · 67 阅读 · 0 评论 -
【ACWing】225. 矩阵幂求和
以此类推,可由数学归纳法知道。输入只包含一个测试用例。第一行输入包含三个正整数。个非负整数(均不超过。原创 2023-08-28 09:28:46 · 462 阅读 · 0 评论 -
【洛谷】P1429 平面最近点对(加强版)(配数学证明)
我们需要证明一下分治完归并得最终答案的这一部分的时间是线性的。坐标从小到大排序,接着暴力从下到上枚举带状区域中的点,对于每个点,我们枚举与其。,然后先左右分治求出两个半平面里的答案,设这两个答案的最小值为。个点,而这两个点在同一个半平面内,并且这两个点的距离一定不大于。我们先假设在分治的过程中,已经将左右两边的点按。坐标从小到大排过序了,接着我们先将所有点按归并的方式按。,表示一个点的行坐标和列坐标,中间用一个空格隔开。个点的所有点对中,该距离为所有点对中最小的。个点,找出其中的一对点的距离,使得在这。原创 2023-08-27 15:48:36 · 445 阅读 · 0 评论 -
【洛谷】P1257 平面上的最接近点对
另一个更好的方法是分治,参考。个点的所有点对中,该距离为所有点对中最小的。仅一行,一个实数,表示最短距离,四舍五入保留。个点,找出其中的一对点的距离,使得在这。,表示一个点的行坐标和列坐标。,小数点后的数字个数不超过。原创 2023-08-27 13:41:07 · 295 阅读 · 0 评论 -
【ACWing】205. 斐波那契
时,表示输入终止,且该用例无需处理。每个测试用例输出一个整数表示结果。每个测试用例占一行,包含一个整数。输入包含多组测试用例。原创 2023-06-18 14:06:54 · 57 阅读 · 0 评论 -
【ACWing】1309. 车的放置
个车没有两个车在同一行,也没有两个车在同一列,问有多少种方案。方案互不交叉,从而可以用加法原理。我可以分步骤,考虑上面放。组合数和排列数可以预处理出来。考虑完上面接着考虑下面,同样先选行,则有。表示了对应边长度,也就是对应格子数。,选定行的情况下,它们的列是排列数。有下面这样的一个网格棋盘,个相互不攻击的车,也就是这。,保证至少有一种可行方案。行放多少个来分类,如果上面。个方案,选定好行之后,只有。个列可供选择,从而方案数为。包括一个正整数,为答案。共一行,五个非负整数。所有方案可以按照上面。原创 2023-06-18 06:21:48 · 87 阅读 · 0 评论 -
【ACWing】1308. 方程的解
我们要求的是这个不定方程的正整数解组数。佳佳碰到了一个难题,请你来帮忙解决。有且只有一行,为用空格隔开的两个正整数,依次为。的正整数解的个数,可以用隔板法求出答案为。有且只有一行,为方程的正整数解组数。这个级别,需要高精度。原创 2023-06-17 16:37:10 · 145 阅读 · 0 评论 -
【ACWing】1307. 牡牛和牝牛
只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛。牛们要站成一排,但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至少要有。请计算一共有多少种排队的方法,所有牡牛可以看成是相同的,所有牝牛也一样,答案对。的满足条件的序列有多少种,那么我们可以按倒数第。的出现的位置来分类,所以总方案数量即为。最后求总方案的时候则按最后的。一个整数,表示排队的方法数。的位置在哪里来分类,所以。原创 2023-06-17 15:58:58 · 87 阅读 · 0 评论 -
【ACWing】1305. GT考试
他不希望准考证号上出现不吉利的数字。阿申想知道不出现不吉利数字的号码有多少种,输出模。有多少种方案(即读多少中多种不同字符)能跳到状态。,我们只需要暴力枚举累加即可。阿申准备报名参加GT考试,准考证号为。为初始态,容易证明这个状态机只接受以。其幂可以用快速幂来做。的只含数字的字符串有多少个不以。开始计数),其含义是当前在状态。将这个不吉利的数字视为一个长。数组可以构造出一个只接受以。),或者等于最终跳到的位置。为子串的串的状态机(参考。简而言之,该状态机有。的列向量,考虑递推关系。原创 2023-06-17 15:36:53 · 92 阅读 · 0 评论 -
【ACWing】1304. 佳佳的斐波那契
佳佳对数学,尤其对数列十分感兴趣。在研究完Fibonacci数列后,他创造出许多稀奇古怪的数列。可这对佳佳来说还是小菜一碟。终于,她找到了一个自己解决不了的问题。,从而可以用快速幂来做。表示Fibonacci数列前。现在佳佳告诉你了一个。表示Fibonacci前。共一行,包含两个整数。原创 2023-06-17 05:53:48 · 167 阅读 · 0 评论 -
【ACWing】1303. 斐波那契前 n 项和
所以问题转化为求矩阵的幂,从而可以用快速幂来做。大家都知道Fibonacci数列吧,现在问题很简单,输入。共一行,包含两个整数。原创 2023-06-17 03:18:38 · 91 阅读 · 0 评论 -
【ACWing】4005. 取石子游戏
如果轮到一人行动时,已经没有石子可取,则该名玩家失败。已知,双方都会采取最优策略,且Alice率先行动。请问,最终谁将获胜。个石子,双方轮流采取行动。每当轮到一人行动时,该名玩家需要从石子堆中取走恰好。首先这些态之间都是不能一步可达的。每组数据输出一行结果,如果Alice获胜,则输出。Alice和Bob正在玩一个取石子游戏。的倍数,则博弈退化为Bash博弈,每组数据占一行,包含两个整数。则退化为Bash博弈,如果。原创 2023-04-17 23:23:54 · 166 阅读 · 1 评论 -
【洛谷】P4018 Roy&October之取石子(配数学证明)
小于等于当前剩余石子数),谁取走最后一个石子,谁就赢了。现在October先取,问她有没有必胜策略。若她有必胜策略,输出一行。Roy 和 October 两人在玩一个取石子的游戏。,所以这些态互相不可达;都是素数,所以别的状态都能到。个石子,两人每次都只能取。游戏规则是这样的:共有。原创 2023-04-17 08:57:56 · 127 阅读 · 0 评论 -
【洛谷】P4860 Roy&October之取石子II(配数学证明)
小于等于当前剩余石子数),谁取走最后一个石子,谁就赢了。现在October先取,问她有没有必胜策略。若她有必胜策略,输出一行。Roy和October两人在玩另一个取石子的游戏。(第一季请看P4018),所以这些状态之间是不可达的;而对于任意一个非上面的状态,由于。都是质数,从而这些状态都可以到达上面的状态。是必败态,其余状态是必胜态。个石子,两人每次都只能取。游戏规则是这样的:共有。原创 2023-04-17 08:49:05 · 90 阅读 · 0 评论 -
【ACWing】1115. 取石子游戏(配数学证明)
有两堆石子,两个人轮流去取,每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍(不能不取)。比如初始的时候两堆石子的数目是。给定初始时石子的数目,如果两个人都采取最优策略,请问先手能否获胜。这两个状态,可以证明这两个状态一定不能都是先手必胜态,因为如果。每组数据一行,包含两个正整数。所以两个状态必然其一是必败态,从而。是必胜态,但是下一步的走法唯一,所以。(先取的)获胜,在取的过程中选手。,则第一步走法是唯一的。,表示初始时石子的数目。,则先手必胜(先手直接将。原创 2023-04-17 06:59:53 · 156 阅读 · 0 评论 -
【ACWing】4192. 取石子游戏 2
2、每人每次选一堆石子,并从中取走若干颗石子(至少取 1。4、如果轮到某人取时已没有石子可取,那此人算负。假如两个游戏玩家都非常聪明,问谁胜谁负?输出仅一行,一个整数,若先手获胜输出。3、所有石子被取完,则游戏结束;堆石子,每堆石子的数量分别为。1、游戏双方轮流取石子;,表示每一堆石子的颗数。原创 2023-04-17 06:33:30 · 201 阅读 · 0 评论 -
【洛谷】P2252 取石子游戏|【模板】威佐夫博弈(配数学证明)
有两堆石子,数量任意,可以不同。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;现在给出初始的两堆石子的数目,你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。所以证明了通项公式中的项之间不能互相到达,并且之外的项必然可以一步到达公式中的某一项,从而公式中的状态都是奇异态。下面证明, 通项公式的两个不同状态之间不能一步到达。是否成立即可,如果成立,则先手必败,否则必胜。个石子,此时得到了另一个奇异态,从而。的奇异态中未出现的最小正整数,且。结论是,奇异态的通项公式为。原创 2023-04-17 06:01:10 · 436 阅读 · 0 评论 -
【Leetcode】2427. Number of Common Factors
有多少个正因子即可。,求它们的正的公因子的个数。的每个因子的次数,空间。原创 2022-11-17 10:09:28 · 256 阅读 · 0 评论 -
【ACWing】1401. 围住奶牛
遍历完所有点之后也就搞定了上半部分,这时候我们倒着遍历所有点,略过用过的点(除了第一个点,这个点不能略过,因为凸包要做成一个闭合折线),同时也是按上面的法则判断。现在给定这些地点的具体坐标,请你求出将这些地点都包含在内的围栏的最短长度是多少。是凹下去的,不凸),则我们需要将栈顶丢弃,一直到不满足右手定则为止,然后将这个点入栈。(当然这两个向量是二维向量,算不了叉积,我们真正算的是将这两个向量放到三维空间的时候的叉积,并且我们只关注。的水平线上半部分的点,然后再搞定下半平面的点。,表示一个地点的具体坐标。原创 2022-11-06 12:02:53 · 394 阅读 · 0 评论 -
【ACWing】3571. 点的距离
创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数,运算符重载为类重载(非友元重载),可以实现计算两个点之间的距离。要求:输入两个点的坐标,输出两个点之间的距离。每组数据输出一行,一个答案,表示两点之间距离,保留两位小数。个整数分别表示两个点的横纵坐标。原创 2022-10-17 05:15:22 · 95 阅读 · 0 评论 -
【ACWing】2559. 数正方形
个顶点,一共有多少种不同的取法?由于结果可能非常大,你只需要输出模。接下来考虑斜着放的正方形有多少个。的正着放的正方形,其内接的斜着放的正方形恰好有。所有的正着放的正方形可以按边长分类,边长为。个,所以其内接的斜着放的正方形就有。如上图所示的正方形都是合法的。个点恰好组成一个正方形的。输出一个整数代表答案。原创 2022-10-12 09:35:11 · 326 阅读 · 0 评论 -
【ACWing】3626. 三元一次方程
每组数据输出一行结果,如果无解则输出。每组数据占一行,包含一个整数。2、如果解不唯一,则输出。,整数之间单个空格隔开。,请你求出三元一次方程。原创 2022-09-12 15:24:35 · 207 阅读 · 0 评论 -
【洛谷】P4597 序列
要求把序列变成非降数列。而且要求修改后的数列只能出现修改前的数。给定一个序列,每次操作可以把某个数。输出一个数,表示最少的操作次数。个整数,整数的绝对值不超过。第一行,输入一个整数。原创 2022-08-21 05:12:43 · 153 阅读 · 0 评论 -
【洛谷】P2893 Making the Grade G
我们要求修好的路是单调不升或者单调不降的。农夫约翰想改造一条路,原来的路的每一段海拔是。原创 2022-08-21 05:01:59 · 141 阅读 · 0 评论 -
【洛谷】P4331 数字序列
若有多种方案,只需输出其中一种。第一行输出最小的绝对值之和。的各项之差的绝对值之和。原创 2022-08-21 00:02:32 · 197 阅读 · 0 评论 -
【ACWing】2725. 数字序列
则各项之差的绝对值之和和不变换的情况是一样的,最后只需要将。注意不能用STL里的堆,而要手写一个,否则会超时。第一行输出绝对值之和的最小值。是非严格递增序列,如果我们能对。请你求出一个递增序列。的各项之差的绝对值之和。输出任意合理方案即可。原创 2022-08-21 00:01:00 · 201 阅读 · 0 评论 -
【CodeForces】CF13C Sequence(配数学证明)
要求把序列变成非降数列。而且要求修改后的数列只能出现修改前的数。给定一个序列,每次操作可以把某个数加。原创 2022-08-20 05:15:27 · 305 阅读 · 0 评论 -
【ACWing】273. 分级(配数学证明)
则上移和下移都不影响,我们仍然可以做整体上移或者下移的操作。通过这种办法,我们可以经过有限次操作得到最优解。(其实还需要证明一下最优解是存在的,但这个较为显然,因为。必然是非负整数,而任意自然数集合一定是有最小值的)。只考虑非降情形,可以证明,存在一个最优解,使得。整体上移,能得到更优解;整体下移,能得到更优解;的情况下,最优解是多少。看成一个自变量,考虑函数序列。从小到大排序,设排序结果为。只需要求出这个最小值。输出一个整数,表示最小。行,每行包含一个整数。原创 2022-08-20 09:30:00 · 492 阅读 · 0 评论 -
【洛谷】P2803 学校选址II
在一条大路一旁有许多栋楼,每栋楼里有许多小学生(哈哈哈一波小学生来袭!所以唯恐世界不乱的牛A打算在路上(汽车什么的都不敢来这个小学生云集的地方咯,所以不用担心安全问题)任选几点(可以和楼重合,当然也可以不重合)建立小学,且使所有小学生上学走的路程之和最短。剩余情况,可以按最右边的那个学校建在什么地方来分类,如果是建在。个学校的情况下,最小的总距离和是多少。的楼的学生的时候,最优的放置学校的位置。个大楼的总学生数的时候,显然要选。,即只建一个学校,则根据定义,个整数,表示每栋楼的学生数(......原创 2022-08-14 13:56:46 · 430 阅读 · 0 评论 -
【ACWing】1293. 夏洛克和他的女朋友
华生挑战夏洛克,让他给这些珠宝染色,使得一件珠宝的价格是另一件珠宝的价格的质因子时,两件珠宝的颜色不同。并且,华生要求他使用的颜色数尽可能少。请帮助夏洛克完成这个简单的任务。,只需要一种颜色)。并且两种颜色也够用了,可以将所有质数染成一种颜色,合数染成另一种。夏洛克有了一个新女友(这太不像他了!情人节到了,他想送给女友一些珠宝当做礼物。中有合数的时候,颜色数必然不少于。,也就是说,珠宝的价值分别为。若有多种答案,输出任意一种。,表示所使用的颜色数;件珠宝被染成的颜色。...原创 2022-08-14 09:17:05 · 202 阅读 · 0 评论 -
【ACWing】1292. 哥德巴赫猜想
现在,你的任务是验证所有小于一百万的偶数能否满足哥德巴赫猜想。的偶数都可以拆成两个奇素数之和。哥德巴赫猜想的内容如下:任意一个大于。每组数据占一行,包含一个偶数。取值范围,每次询问时间复杂度。对于每组数据,输出形如。的所有素数,然后对每个。......原创 2022-08-12 15:02:48 · 270 阅读 · 0 评论 -
【洛谷】P2613 【模板】有理数取余
一个整数,代表求余后的结果。原创 2022-08-08 09:45:50 · 333 阅读 · 0 评论 -
【洛谷】P1082 同余方程
最小正整数可以是多少。可以用扩展欧几里得算法求出一组解。输入数据保证一定有解。剩余类里最小正代表元。可以取到的最小正整数就是。一行,包含两个正整数。原创 2022-08-08 09:26:42 · 249 阅读 · 0 评论 -
【洛谷】P5091 【模板】扩展欧拉定理
则可以直接用快速幂暴力求解。依次代表的是底数、模数和次数。扩展欧拉定理是,如果。原创 2022-08-08 03:58:11 · 242 阅读 · 0 评论 -
【ACWing】230. 排列计数
由于满足条件的序列可能很多,所以请你将序列数对。的逆元可以用费马小定理和快速幂来做。逆元可以用记忆化避免重复计算。值可以打个表,阶乘的值也可以打个表。行,每行一个整数,表示求出的序列数对。个数在序列中各出现了一次。那么本题可以分步骤,先取。数据范围),每次询问时间。是稳定的,序列恰好有。...原创 2022-08-01 02:19:55 · 120 阅读 · 0 评论