数学
文章平均质量分 59
。十二。
这个作者很懒,什么都没留下…
展开
-
【2022.1.21 洛谷 月赛 II】A 质因数
解题思路我们发现质因数越小,a_i会越大,就越优,则以2为质因数是最好的,所以当当前数只有2一个质因数,或质因数只有2,3且只有一个三,就不会有f(m)>f(n)f(m)>f(n)f(m)>f(n)的情况,其余都有代码#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<...原创 2022-01-21 16:58:45 · 444 阅读 · 0 评论 -
【牛客练习赛95】Non-interger Area【数学】
解题思路考虑当我们用叉积计算面积的时候,会以坐标轴上的一个点作为原点,在剩下的点中再枚举两个点,计算他们以原点的叉积。打过叉积的人会发现,这样算出来的一定是质数,但是是一个四边形的面积,则当他是偶数时,我们/2求出的三角形面积会是一个小数,与题意符合。所以我们得出,叉积等于奇数时,面积是小数,回忆一下乘法奇偶性,我们需要一个横纵坐标奇偶性相反的(即一奇一偶),还需要一个横纵坐标都是奇数的。我们把所有的点按照奇偶性归类,前奇后偶的个数为x,两个偶数个数为y,两个奇数个数为z,前偶后奇个数为k。我们...原创 2022-01-21 14:51:22 · 461 阅读 · 0 评论 -
【洛谷 2021.11.8团队模拟赛】 Lyrith -迷宮リリス-【数学】
解题思路考虑8的倍数的特征,只要最后三位组成的数时8的倍数就好了。。预处理出1000以内8的倍数,判断输入的字符串里是否包含它们,如果有包含,就把它放最后输出。注意特判小于三位的情况还有刚好那三位为0的情况。代码#include <bits/stdc++.h>#define ll long longusing namespace std;string s;int l,cnt,k,a[1010],w[15],v[15];bool flag;string read()...原创 2021-11-13 09:48:42 · 476 阅读 · 0 评论 -
【Ybtoj】【NOIP2021 模拟赛 B 组 Day8】求中位数
解题思路考虑到要求任意两个数的差值的中位数,可以对原序列进行排序,因为顺序并不影响答案。考虑二分答案,排序后可以通过双指针确定某个数在差值中的排名,从而缩小二分区间。具体地说,序列排序后,设有两个指针 i,j,满足 i<j。可以发现区间 [i,j][i,j][i,j] 中的任意右边的数减左边的数都小于a[j]−a[i]a[j]-a[i]a[j]−a[i]。设中位数排在第s个如果固定 j,即固定大的那个数,我们只要维护好处在边界的 i,满足 a[j]−a[i]<=sa[j...原创 2021-11-06 17:02:17 · 126 阅读 · 0 评论 -
【洛谷 P5248】快速多项式变换【进制数转换】
解题思路只有我现在才知道进制数转换可以直接mod吗??代码#include <bits/stdc++.h>#define ll long longusing namespace std;ll x,a;ll maxn,v[110];int main(){ scanf("%lld%lld",&x,&a); while(a!=0) { v[maxn]=a%x; a=a/x; maxn++; } printf("%lld\n",maxn...原创 2021-11-06 07:29:02 · 175 阅读 · 0 评论 -
【2021牛客赛前集训营 提高组(第三场)】变换【组合数】【数学】
解题思路规律如上,乘号前面的是系数,后面的是系列的下标,可以发现系数与杨辉三角有关然后就上个组合数就好了。PS:比赛的时候处理组合数部分用了Lucas定理,其实不用的,直接暴力求就好了。(要用逆元)代码《懒得手推结果打规律打了1h》打规律的code#include<bits/stdc++.h>#define ll long longusing namespace std;const int mod=1e9+7;int n,T,v[100010];string...原创 2021-10-10 15:35:12 · 259 阅读 · 0 评论 -
【2021牛客赛前集训营 提高组(第二场)】方格计数【组合数】【数学】
解题思路考虑枚举两个端点,强制两个端点选,令 a 为两个端点之间 x 轴上的距离,b 为两个端点 y 轴上的距离,其实这里也可以理解为没见了一条直线(枚举一个斜率ab\frac{a}{b}ba)那么这里面可以选择的点的个数有 g=gcd(a,b)g=\gcd(a,b)g=gcd(a,b) 个。我们要求 N−2N-2N−2 个小球(强制两个端点选),需要放到 g 个盒子里,相邻两个小球的盒子编号差至少为 k,方案数为(g+1−2k−(N−3)(k−1)N−2)\dbinom{g+1-2k-(...原创 2021-10-07 17:05:00 · 233 阅读 · 0 评论 -
【洛谷 2021.10.6团队模拟赛】巡回的梦魇之神喜欢数列【结论】
解题思路设前缀和为 s ,那么有 ai=kisi−1,si=si−1+ai=si−1+kisi−1=i+kisi−1a_i=\frac{k}{i}s_{i-1} , s_i=s_{i-1}+a_i=s_{i-1}+\frac{k}{i}s_{i-1}=\frac{i+k}{i}s_{i-1}ai=iksi−1,si=si−1+ai=si−1+iksi−1=ii+ksi−1然后不难发现答案sn=∏i=1nk+ii=Cn+k−1ns_n=\prod_{i=1}^n\fra...原创 2021-10-07 15:14:48 · 106 阅读 · 0 评论 -
【洛谷 2021.10.7团队模拟赛】高尚的战斗之神想要取模【数学】
解题思路考虑 xxx%rrr 后的值,如果 xxx%r∈[l,r]r∈[l,r]r∈[l,r] 那么下一次 xxx 再次变化一定是直接变为 0 ,否则中途一定不会变化。综上答案就是(r−max{x%r,l−1})×(x%r)\left(r-max\{x\%r,l-1\}\right)\times (x\%r)(r−max{x%r,l−1})×(x%r)时间复杂度:O(1)代码#include<iostream>#include<cstdio>#include&l...原创 2021-10-07 15:05:53 · 81 阅读 · 0 评论 -
【2021牛客赛前集训营 提高组(第二场)】串串串【结论题】
解题思路要求出 ai≠bia_i\ne b_iai=bi 的位置个数对 2 取模的结果,感觉和奇偶性有关,然后得出个结论,当[a,b]中1的个数和[x,y]中1的个数奇偶性一样时,就输出0,否则输出1.证明:[a,b][a,b][a,b]中的1和[x,y][x,y][x,y]中的1有些可以对上,可以对上的数量是相同的,奇偶性也相同,所以减去他们不改变[a,b][a,b][a,b]中1的个数和[x,y][x,y][x,y]中1的个数的奇偶性。所以,剩下的ai≠bia_i\ne b_iai...原创 2021-10-07 08:00:11 · 139 阅读 · 0 评论 -
【洛谷 2021.10.6团队模拟赛】看错题的产物改编而来的产物【结论】
解题思路其实是一道还比较好看出来的 不是 结论题,暴力的话就直接枚举约数,然后看他是多少个数的因子就无了,然后稍微想一想。答案就是这个序列的最大值.对于一个因子i,假设他是j个数的最大公约数,我们让这j这j这j个数尽量小,也就是让最大值尽量小,则设那j个数为i∗1,i∗2,i∗3,i∗4……i∗ji*1,i*2,i*3,i*4……i*ji∗1,i∗2,i∗3,i∗4……i∗j,这样的贡献为j∗ij*ij∗i,而当因子为i*j时,只有一个数,贡献i∗j∗1i*j*1i∗j∗1,也为这个。这是假设...原创 2021-10-06 15:13:20 · 115 阅读 · 0 评论 -
【洛谷 P2827】蚯蚓【堆—>队列】
解题思路对于每一秒除了被切的哪一个所有的蚯蚓都增长Q米,我们来维护3个队列,队列1表示最开始的蚯蚓,队列2表示每一次被切的蚯蚓被分开的较长的那一部分,队列3表示每一次被切的蚯蚓被分开的较短的那一部分。我们先把原序列排序,因为不管怎么切,先被切的蚯蚓分成的两部分一定比后切的蚯蚓分成的两部分大(较大的部分和较大的部分比较,较小的部分和较小的部分比较),所以我们可以省去每一秒增加每只蚯蚓的长度这个操作,转换成在查询砍那只蚯蚓时,把增加的长度算到蚯蚓的总长度上寻找每次砍哪一只蚯蚓就是在队列1、队列2、...原创 2021-09-29 18:03:31 · 202 阅读 · 0 评论 -
【洛谷 P1966 】火柴排队【逆序对】【数学(映射)】
解题思路好了回归题目,既然要求找到 min(Σ[(ai−bi)2])min(Σ[(ai-bi)^2])min(Σ[(ai−bi)2]),那么我们不妨变形一下:Σ[(ai−bi)2]=Σ(ai2−2∗ai∗bi+bi2)Σ[(ai-bi)^2]=Σ(ai^2-2*ai*bi+bi^2)Σ[(ai−bi)2]=Σ(ai2−2∗ai∗bi+bi2)由此可见,若想使min(Σ[(ai−bi)2])min(Σ[(ai-bi)^2])min(Σ[(ai−bi)2])最小,而和式中ai2+bi2ai^2+bi...原创 2021-09-29 17:56:50 · 131 阅读 · 0 评论 -
【Ybtoj】【 NOIP2021 模拟赛 B 组 Day4】B. 循环数组
解题思路对于一个数x,只要一个区间中出现了x,而不论它的个数是多少,它对这个区间权值的贡献都只是1。那么我们考虑枚举每一个x来求出含有它的区间的个数,然而直接求很麻烦,我们运用补集转化的思想,求出不含x的区间个数,用总区间个数减去这一部分的值,即为x的贡献。我们假设得到了x在这个n×k的数组中出现的位置分别为p1,p2,⋯,pmp1,p2,⋯,pmp1,p2,⋯,pm因为对于一个长度为x的序列,它总共有x(x+1)/2x(x+1)/2x(x+1)/2的子区间(一个数也算做一个区间),所以我们设...原创 2021-09-28 19:29:49 · 176 阅读 · 0 评论 -
【Ybtoj】【 NOIP2021 模拟赛 B 组 Day4】A. 统计集合【数学】
解题思路代码#include<cstdio>#include<iostream>#include<queue>#include<algorithm>#include<cstring>#include<cmath>#define ll unsigned long longusing namespace std;const ll mod=1e9+7;int n;ll a[1000010],maxn,min...原创 2021-09-28 19:21:52 · 112 阅读 · 0 评论 -
【Ybtoj】【NOIP2021 模拟赛 B 组 Day2】B. 乘积求和【归并排序】
解题思路看懂题目就很好做了,就是把所有构成逆序对的两个数相乘,再乘上他们在多少个区间存在过。用归并排序+前缀和:ans+=a[i].x∗a[j].x∗i∗(n−j+1)ans+=a[i].x* a[j].x* i * (n-j+1)ans+=a[i].x∗a[j].x∗i∗(n−j+1),预处理a[i].y=a[i].x∗ia[i].y = a[i].x * ia[i].y=a[i].x∗i, a[i].suma[i].suma[i].sum保存a[i].ya[i].ya[i].y的前缀和,这...原创 2021-09-26 21:54:14 · 178 阅读 · 0 评论 -
【Ybtoj】【 NOIP2021 模拟赛 B 组 Day2】A. 加加减减
解题思路我们对 a 数组进行排序,易证最优决策为:存在位置 i,使得 a1—>aia_1—>a_ia1—>ai均加上k ,ai+1—>ana_{i+1}—>a_nai+1—>an 均减去 k。枚举每一个i 计算答案,sum=max(a[n]−a[1]−2∗k,a[i−1]+2∗k−a[i])sum=max(a[n]-a[1]-2*k,a[i-1]+2*k-a[i])sum=max(a[n]−a[1]−2∗k,a[i−1]+2∗k−a[i]),最大的减...原创 2021-09-26 21:44:32 · 260 阅读 · 0 评论 -
【洛谷 P7076】动物园【位运算】
解题思路题目理解完就比较好做了。。最多可以多加进2k−n2^k-n2k−n种动物,但有些位上有限制(要多买饲料),且现在还没有那种饲料,该位置上就不能填。算出k位里有多少位能填,记为cnt,答案为2cnt−n2^cnt-n2cnt−n代码#include<cstdio>#include<iostream>#include<queue>#include<algorithm>#include<cstring>#include...原创 2021-09-25 07:56:30 · 213 阅读 · 0 评论 -
(纪中)1314. 稳定的数字【高精除】
解题思路首先不难想到是要把这个数质因数分解。然后如果有大于 9 的质数就代表无法搞出来。接着我们考虑是否要把一些质数合成成大一点的,使得数位数更少。然后就会发现枚举2∼9作为因数就好了,如果能除多次就一直除(为了减少数位),每多得到一个因数就放进数组中,最后从小到大输出。PS:因为他说原来的数至少是二位数,那如果给出的数是 0,答案就是 10 ,给出的是 1,答案就是 11 ,如果是 2∼9,答案就是 12 ∼ 19 。最后:要高精除代码#include<iostream>..原创 2021-09-03 19:42:04 · 198 阅读 · 0 评论 -
(纪中)1312. 老曹的忧郁【数学】
解题思路题目大意:三个同字母小圆若能组成为一个等边三角形,该字母为不和谐的。我们可以以最后一行的第一个圆的圆心作为原点,规定向右、向上为x、y轴的正方向,圆的半径为单位距离,建立笛卡尔(平面直角)坐标系,然后三重循环枚举同字母的点,判断两两之间的距离是否相等。关键在于怎样求距离,可以先求出每个点的坐标,那么,第x行第y个圆的圆心,在坐标系中哪个点呢?如上图,我们很容易看出A点的横坐标是n+2y−x−2n+2y-x-2n+2y−x−2,竖坐标是n−xn-xn−x,股定理可以得出两点间长度是3–...原创 2021-08-27 00:18:23 · 110 阅读 · 0 评论 -
【Ybtoj 第31章】第5章 博弈论
目录A. 【例题1】取火柴游戏B. 【例题2】数字游戏C. 【例题3】魔法珠D. 【例题4】剪纸游戏A. 【例题1】取火柴游戏解题思路》》洛谷linkNIM游戏模板 主要是输出方案必胜情况下 必有 ai xor x<xa_i~xor~x<xai xor x<x 找到aia_iai 并输出即可代码#include<iostream>#include<cstdio>#include<algori原创 2021-08-24 16:24:53 · 222 阅读 · 1 评论 -
【Ybtoj 第30章】组合数学
目录A. 【例题1】计算系数A. 【例题1】计算系数解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll原创 2021-08-24 15:54:28 · 208 阅读 · 0 评论 -
(纪中)1325. YL杯超级篮球赛【带权中位数】
解题思路因为他求的点与点的距离并不是勾股定理,所以,这道题就变得简单了许多,点与点的距离,只跟横坐标与纵坐标的差距有关系,所以我们就可以将点的横坐标和纵坐标分开来讨论。考虑如果w的值为1的话,那就很好做了,就是都选中位数嘛。对于w>1的情况;你可以想象成复制了w个这样的点,在复制成w个之后再分别找中位数就是答案了;代码#include<iostream>#include<cstdio>#include<algorithm>#include<..原创 2021-08-24 14:44:22 · 123 阅读 · 0 评论 -
(纪中)最近公共祖先【数学】
解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long longusing namespace std;const ll mod=...原创 2021-08-21 16:38:56 · 70 阅读 · 0 评论 -
(纪中)3442. 期望异或【数学?】
解题思路这道题的解法还是有点颠覆了我,不符合我正常阅题逻辑。。讲解》》大新闻代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#...原创 2021-08-20 20:55:25 · 141 阅读 · 0 评论 -
(纪中)7240. Just Green Enough
解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#define ldb lon...原创 2021-08-19 20:37:25 · 81 阅读 · 0 评论 -
(纪中)7239. Year of the Cow【数学】
解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#define ldb long...原创 2021-08-19 20:34:36 · 147 阅读 · 0 评论 -
【Ybtoj 第29章例2】约数之和【同余问题】
解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#define ldb long...原创 2021-08-18 18:47:32 · 188 阅读 · 0 评论 -
(纪中)7235. Stone Game【博弈论】
解题思路》》详情见 luogu代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#defi...原创 2021-08-16 21:24:55 · 69 阅读 · 0 评论 -
(纪中)7219. Do You Know Your ABCs?【高斯消元】
解题思路我太开心了,T1打了两个小时,结果真的A了!!!其实思路还是挺简单的,就是多方程解三个未知数。先暴搜枚举每个x_i表示什么(A,B,A+C,A+B+C……),就是题目给出的七种,因为每个x_i都不一样所以这里可以剪枝一下。然后把每个x_i作为一个方程的答案,每个方程的样子是:x∗A+y∗B+z∗C=xix* A+y* B+z* C=x_ix∗A+y∗B+z∗C=xi.我们要解的是A,B,C,已知系数x,y,z(因为系数这就是你深搜的东西,如:xi=A+Bx_i=A+Bxi=A+B...原创 2021-08-16 08:53:04 · 194 阅读 · 0 评论 -
【Ybtoj 第28章例5】余数之和【质数和约数】
解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long long#define ldb long doubleusing namesp...原创 2021-08-14 14:00:55 · 123 阅读 · 0 评论 -
【Ybtoj 第28章例4】反素数【质数和约数】
解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long long#define ldb long doubleusing namespa...原创 2021-08-14 13:23:38 · 181 阅读 · 0 评论 -
【Ybtoj 第28章例3】不定方程【质数和约数】
解题思路由原题的式子可推出:y=xn!x−n!y=\frac{xn!}{x-n!}y=x−n!xn!,我们设t=x−n!t=x-n!t=x−n!,则x=t+n!x=t+n!x=t+n!,得到y=n!+(n!)2ty=n!+\frac{(n!)^2}{t}y=n!+t(n!)2,因为n和y是整数,所以t一段要是(n!)2(n!)^2(n!)2的约数,题目就变成了求(n!)2(n!)^2(n!)2的约数个数,即求∏i=1m(ci+1)∏_{i=1}^m(c_i+1)∏i=1m(ci+1)对于一...原创 2021-08-14 08:24:16 · 169 阅读 · 0 评论 -
【Ybtoj 第28章例2】质数距离【质数和约数】
解题思路首先我们发现:R−LR-LR−L 的范围很小,我们应该要能够快速求出 L∼RL∼RL∼R 之间的质数。显然有推论:任意一个合数 x 必定包含一个不超过 x\sqrt xx的质因子。所以我们可以筛出 [1,R][1,\sqrt R][1,R] 之间的所有质数,对于每个质数 pp,把 [L,R][L,R][L,R]中能被 ppp 整除的数标记为合数。最终没有被标记的数就是质数,对相邻的质数两两比较,找出差值最小和最大的即可。代码#include<iostream>#i...原创 2021-08-14 08:24:28 · 143 阅读 · 0 评论 -
【Ybtoj 第28章例1】线性筛素数【质数和约数】
解题思路欧拉筛就行了代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long long#define ldb long doubleusing ...原创 2021-08-13 22:22:17 · 125 阅读 · 0 评论 -
(纪中)3056. 数字【数学】
解题思路首先我们要知道,求总合法的不能只简单的把两种情况的个数直接相加得到,因为他们有交集,要用容斥原理把它们的交集减去。(Ps:1221这个串,前后位和奇偶位都相等。)预处理:d[i][j]代表在集合中选i个数,i个数的和为j的时候一共有多少种方案数.状态转移方程:F[i,j]=∑(F[i−1,j−S[k]])(i=1F[i,j]=∑(F[i-1,j-S[k]]) (i=1F[i,j]=∑(F[i−1,j−S[k]])(i=1~n,j=0n, j=0n,j=0~maxnum∗i,k=1&nbs...原创 2021-08-10 19:26:12 · 165 阅读 · 0 评论 -
(纪中)3055. 比赛【期望】【数学】
解题思路考试的时候已经推出来了,结果没想着化简TOT,n2n^2n2拿30分…我们考虑选中A1A_1A1和B1B_1B1了,则剩下的A和B共有!(n−1)!(n-1)!(n−1)种组合方案,而总共有!n种组合方案,则A1A_1A1和B1B_1B1的组合下可以贡献的期望为(A1−B1)2∗!(n−1)!n\frac{(A_1-B_1)^2*!(n-1)}{!n}!n(A1−B1)2∗!(n−1)简化得 (A1−B1)2n\frac{(A_1-B_1)^2}{n}n(A1−B1)2...原创 2021-08-10 19:10:04 · 80 阅读 · 0 评论 -
(纪中)4257. 着色【组合数】
解题思路。。。一个一个图分析TOT首先我们发知道最多用3种颜料,且至少用2种颜料,则我们每次针对这两个情况分析。预处理:三种颜料时,对于颜料有Ck3C_k^3Ck3种选择,w=k∗(k−1)∗(k−2)/6;w=k*(k-1)*(k-2)/6;w=k∗(k−1)∗(k−2)/6;两种颜料时,对于颜料有Ck2C_k^2Ck2种选择,ww=k∗(k−1)/2ww=k*(k-1)/2ww=k∗(k−1)/2八个图:P1:kP1:kP1:k必须>=2>=2>=2当k...原创 2021-08-09 21:36:42 · 68 阅读 · 0 评论 -
(纪中)7208. 书页【数学】
解题思路就从k+1k+1k+1开始暴力的假设后面的都是文本页,当再加一页文本页,数码和就超过sss的时候,开始贪心。为了补上s和当前数码和的差值,试着让每一页都往后推一页,因为就算全部文本页都往后推了一页,也只多了一个插图页。假设现在文本页为xxx页,多了一个插图页的代价,可以让全部文本页都往后推了一页,让差值减小x。所以用差值除以xxx的商,就是至少要多多少插图页,最后如果差值除以x有余数(设为eee),插图页还要加一,因为还要让e个文本页往后推,而e<ne<ne<n,保证...原创 2021-07-22 16:27:37 · 118 阅读 · 0 评论 -
(纪中)7183. 屠龙勇士【扩欧】【同余】
解题思路首先知道每次打龙用的武器是一定的,但是直接每替换+排序肯定超时,SO,看了看大佬的解法:(我不懂,我不会,我看到了什么)跳过这段吧,接着讲这题重点(忽略我的菜 )我们找到了每次打的武器的攻击力 eie_iei ,依题意得:xei≡ai(modpi)xe_i≡a_i (mod p_i)xei≡ai(modpi)我们要找到最小的 xxx 。啊,这很 EXCRT。但你发现它 x 系数不是 1 ,因为你就是要求那个系数,笑死 。(再扩展一下)假设你求出了前面 i − 1 条同余...原创 2021-07-19 20:11:43 · 92 阅读 · 2 评论