![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
M
数
hash[072]
这个作者很懒,什么都没留下…
展开
-
2020 China Collegiate Programming Contest, Weihai Site C. Rencontre(树形dp+期望)
题目:C. Rencontre大致题意:有n个旅馆,有3个集合分别包含了各自的旅馆。在每个集合中选择一个旅馆之后确定了3个旅馆的位置,再选择一个旅馆v,使得三个旅馆到v旅馆的总距离最小,问路线的期望总长度。画图可以发现,树上的三个点找到一个点使之距离最小,必是三个点中的一个,将其中一个视作中点,但是确定三个点之后,还得计算是哪一个最小的,由于有一个是中点,可以直接相加三个点的互相距离最后除以2。证明比较x+y+z和2min的大小比较x+y+z和2min的大小比较x+y+z和2min的大小,两端乘原创 2020-12-08 16:39:25 · 278 阅读 · 2 评论 -
(POJ-2369) (2020牛客多校第二场J.Just Shuffle 第五场E.Bogo Sort)
全排列的置换以及群的基础知识点可以在网上看一看。https://wenku.baidu.com/view/7b373e6b561252d380eb6ee5.html#题目:POJ-2369题意:给定一个置换,问多少次可以回到原来的顺序。发现每个数都是一个环(或者是群的概念理解),找循环节长度,周期倍数回到原来的地方,求lcm。#include<cmath>#include<iostream>#include<cstdio>#include<cstr原创 2020-09-04 14:47:18 · 114 阅读 · 0 评论 -
牛客练习赛69 (D组合+dp F数论)
题目:D 火柴排队组合数需要求一下,顺便总结一下组合数求的几种方法。Cnm=Cn−1m+Cn−1m−1C_n^m=C_{n-1}^{m}+C_{n-1}^{m-1}Cnm=Cn−1m+Cn−1m−1,概念展开证明。由于这里只需要求CnkC_n^{k}Cnk线性推导也可以。选择i个元素增加k,不改变排名,我们需要知道n个数选择1,2,3…个的时候不改变原始排名的数量。n的范围考虑dp,构造状态dp[i][j][0]:前i个人以i结尾选择了j个并且没有改变原始排名的方法数,第i个元素选择没选原创 2020-09-15 19:11:45 · 252 阅读 · 1 评论 -
HDU6574(概率递推)
题目:HDU6574题意:在[1,n]的区间内随机等概率的找到一个r点,之后在[1,r]区间随机等概率的找到一个l点,作为区间[l,r],(都是正整数的点),问两次操作,两个区间相交的概率。细节处理不到位就麻烦的很。一开始通过确定第一个区间进行概率计算,排除不可能的概率乘上第一个区间的概率,但是两边的不可能概率需要排列组合掉到牛角尖里了。逆着算麻烦就正着分析吧。先分情况考虑,首先肯定确定都是正整数,不需要积分了。考虑第一次选的点为i,概率为1n\frac{1}{n}n1,之后我们取l点,为1i\f原创 2020-08-25 14:09:59 · 166 阅读 · 0 评论 -
SPOJ - DIVCNT2(min_25筛)
题目:P5325前置知识点来源:https://blog.csdn.net/u013534123/article/details/82596172https://www.cnblogs.com/cjyyb/p/9185093.html题解参考洛谷:https://www.luogu.com.cn/problem/solution/P5325min25筛时间复杂度O(n34log(n)\frac{n^{\frac{3}{4}}}{log(n)}log(n)n43) ,时间复杂度我当然是不会计算原创 2020-07-13 23:36:32 · 186 阅读 · 0 评论 -
杜教筛模板(P4213)
前置知识点:click讲的个人认为非常好。题目:P4213题意:抓住变换的规律:由狄利克雷卷积:都是积性函数,讲恒等函数I带入。#include<cmath>#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<istream>#include<vector&g原创 2020-07-07 18:17:24 · 126 阅读 · 0 评论 -
洛谷P3455(莫比乌斯反演+整除分块)
题目:click题意:基本与HDU1659思路相同。唯一点,数据量不同,O(n)的复杂度仍然会T。这里用到了整除分块。能够在O(n\sqrt{n}n)的复杂度内解决。即求f(1)的值,我们需要更快求出∑1min(a/d,b/d)μ(d)g(d)\sum_{1}^{min(a/d,b/d)}\mu(d)g(d)∑1min(a/d,b/d)μ(d)g(d)。可以自己写写数据比方说8:8/1=88/1=88/1=88/2=48/2=48/2=48/3=8/4=28/3=8/4=28/3=8原创 2020-07-07 12:00:25 · 327 阅读 · 0 评论 -
洛谷P3949(树状数组+欧拉降幂)
题目:click题意:题意简单,题目毒瘤,我真的吐了,写的线段树最后一个点疯狂T,改为树状数组的区间更新,单点查询。加欧拉降幂,有些细节要对a进行处理。其他的见代码。#include<cmath>#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<istream>#inclu原创 2020-07-06 21:06:06 · 104 阅读 · 0 评论 -
莫比乌斯反演入门(hdu 1659)
前置知识点:click具体一些简单的证明可以自己证明一下。具体的各项知识以及证明待更吧。。。。题目:click题意:给出a,b,c,d,k,求出a<=x<=b, c<=y<=d 且gcd(x,y) = k 的(x,y)的对数。 说名(5,7)和(7,5)是同一对。可以把a,c看作是1。思路:由上述公式,先进行分析,线性筛选求莫比乌斯函数可以直接看代码,也比较好理解。gcd(x,y)=k,那么gcd(x/k,y/k)=1,其实就是找[1,x/k]和[1,y/k]里面互质的对原创 2020-07-05 13:13:29 · 186 阅读 · 0 评论 -
BZOJ2818
BZOJ网站貌似没做下去了。简单说一下题目,思路。给定整数N,求1<=x,y<=N且gcd(x,y)为素数的数对(x,y)有多少对。思路:直接去枚举1-N中的素数,x和y题目没有说大小,假定我们先去求的y=p∗ap*ap∗a,x=p∗bp*bp∗b,gcd(a,b)=1,要求的话直接a=[1,n/p]每个数的欧拉函数,无大小关系乘以一个2即可,但是考虑到1的欧拉函数就是1,就是本身,乘2后结果减1。用一个数组存在欧拉函数的前缀和。...原创 2020-07-04 17:00:43 · 76 阅读 · 0 评论 -
HDU2588
题目:click题意:设g=gcd(X,N),X=g∗ag*ag∗a , N=g∗bg*bg∗b,由于N>=X,b>=a,可以直接去枚举约数g,由于gcd(a,b)=1,a<=b,直接欧拉函数求可得。#include<cmath>#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#inc原创 2020-07-04 16:14:24 · 109 阅读 · 0 评论 -
2018 ACM-ICPC North Central North America Regional Contest H.New Salaries
题目:click题意:一家公司有n个员工,第i个员工的工资范围在[LiL_iLi,RiR_iRi],Li−1<=LiL_{i-1}<=L_iLi−1<=Li,Ri−1<=RiR_{i-1}<=R_{i}Ri−1<=Ri,注意L和R可以为小数,如果一个员工的工资比另一个员工的工资差的话,员工可以投诉,公司将对工资差进行补偿,问公司的赔款期望。由于区间值存在小数,从定义去考虑期望,工资期望E(x)=∫x∗dxR−L=R+L2\int x* \frac{dx}{原创 2020-06-06 12:50:08 · 152 阅读 · 0 评论 -
P1835 素数密度
题目:click题意:求l-r中的素数个数。区间筛,由于l-r中的合数的最小质因数不会大于sqrt( r ),预先处理出sqrt( r )的素数做区间筛。#include<cmath>#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<istream>#include<原创 2020-06-04 11:38:00 · 244 阅读 · 0 评论 -
快速幂以及矩阵快速幂的总结(eg:斐波那契的矩阵快速幂解题)
从校赛了解到矩阵快速幂,一直没做总结。先了解快速幂,矩阵快速幂的话需要一点矩阵知识。快速幂时间复杂度为log(n),当n很大时,无疑减少了许多的时间 ,直接点,比如:2的19次方,19可以转化为二进制:10011=2^3+2^1+2^0,只要做三次运算上代码:(a的n次方)#include<bits/stdc++.h>using namespace std;t...原创 2019-07-23 16:23:23 · 376 阅读 · 1 评论 -
拉格朗日插法的应用(ACM,2019南昌邀请赛B题)
首先来了解拉格朗日插值法。可理解为:个点为(xi,yi),这个多项式可以看做n个下面的函数的和。其中,第i个多项式函数fi除了在fi(xi)=yi外,其他的位置取值都为0,即fi(xj)=0(i≠j)。f(x)=a(x−x1)(x−x2)显然在f(x)=0时,必有x1,x2两解。推而广之,一个有n个顶点的n次多项式可以写为,f(x)=a(x−x1)(x−x2)……(x−...原创 2019-07-30 10:38:44 · 1033 阅读 · 0 评论 -
欧几里德算法,扩展欧几里德,中国剩余定理
数论初步讲解时未总结,周日早上刚起感觉有点困,记忆一下。欧几里德算法:用于求最大公约数,也可求得最大公倍数,即辗转相除法。gcd(a,b)=gcd(b,a%b)例如:设k为a,b的最大公约数假设 a>b a,b的公约数为k, a=bx+y;则能推出 a%k==0, b%k==0,a%b==y由此可得 bx%k==0,(a-bx)%k==0所以说y%k==0 即 ·a...原创 2019-08-18 11:53:52 · 446 阅读 · 0 评论 -
扩展中国剩余定理(包含求逆元)(费马小定理)(ACM数论)
不知道的同学也可以先看看中国剩余定理:https://mp.csdn.net/postedit/99702420有了基础就知道中国剩余定理是用来解同余方程组,可是前提条件是要除数要两两互素,但是如果题目中没有说它是互素怎么办?以往的经验已经告诉我们,这一个算法前提条件约束不能进行的时候,便有一个扩展的算法,当然扩展中国剩余定理就是来解决他们都不一定互素的情况,它是基于扩展欧几里德算法的不知...原创 2019-09-12 22:12:52 · 469 阅读 · 0 评论 -
Comet OJ - Contest #10鱼跃龙门
题目来源:https://www.cometoj.com/contest/65/problem/C?problem_id=3684题意:求k*(k+1)/2%n==0的最小k。由k与k+1可以想到设置未知数:k+1=px,k=qy,可列得方程:px-qy=1,由此扩展欧几里得方程,原方程为px*qy/2*n==(一个正整数),考虑到时间复杂度的问题,可以将x,y先拆分为2*n的质因数 ...原创 2019-09-27 21:05:45 · 210 阅读 · 0 评论 -
欧拉函数(ACM)
在数论中,对于正整数N,少于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,记作φ(n)。φ函数的值:φ(x)=x(1-1/p(1))(1-1/p(2))(1-1/p(3))(1-1/p(4))…..(1-1/p(n)) 其中p(1),p(2)…p(n)为x的所有质因数;x是正整数; φ(1)=1(唯一和1互质的数,且小于等于1)。注意:每种质因数只有一个。欧拉函...原创 2019-10-04 11:46:59 · 319 阅读 · 0 评论 -
欧拉降幂 广义欧拉降幂+板子题(ACM)
欧拉降幂:幂特别大的时候可以用快速幂来大幅度降低时间复杂度,而当幂大到10^10000时快速幂也不太行的时候,这时候就需要用到欧拉降幂,它的定理如下:证明就告辞了。放一道题目FZU 1759题目来源:https://vjudge.net/problem/FZU-1759即求a^b%c的值,b范围贼大,所以采用欧拉降幂板子题。#include<iostream&...原创 2019-10-04 15:21:52 · 454 阅读 · 0 评论 -
Codeforces 906 Power Tower
题目来源:https://codeforces.com/contest/906/problem/D题意很简单,求次幂取模的值。顺便每次判断一下比方说a^b%p,判断b与phi(p)的大小关系,暴力判断的话就取log判断大小,大佬们总是有办法去化简,加入了一个ll MOD(ll n,ll mod){ return n<mod?n:(n%mod+mod);}...原创 2019-10-06 14:47:20 · 123 阅读 · 0 评论 -
2019南京网络赛B supper_log
题目来源:https://nanti.jisuanke.com/t/41299题意理解完之后发现也就是a的a次幂的a次幂...一共b次,直接欧拉降幂做即可。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>...原创 2019-10-06 15:07:04 · 130 阅读 · 0 评论 -
2019南昌ACM全国邀请赛 Xyjj’s sequence(欧拉降幂+DP)
题目来源:https://nanti.jisuanke.com/t/40255先了解题目意思进行欧拉降幂把价值算出来,再进行dp计算。注意dp数组,题目卡内存,所以必须得用滚动数组的形式去计算,不然就会RE。注意MOD是指数形式才能使用,所以最外层计算的时候还是得用正常的快速幂。之后进行dp,大的话,由于a,b序列的相对顺序是不会改变的,所以设置一个dp[2][i][j],dp[0...原创 2019-10-07 14:29:36 · 228 阅读 · 0 评论 -
Codeforces 696 C. PLEASE(递推概率+数论 or 矩阵快速幂)
题目:click题意:有三个杯子,钥匙一开始在中间,n轮游戏,每一轮游戏可以选择一个杯子与中间的交换,问n轮钥匙要中间的概率。用分数表示。1. 有点类似概率dp的味道,但不需要你计算机跑,手算递推就可以了。dp[i]为第i轮钥匙在中间的概率,那么dp[i]=(1-dp[i-1])/2;很明显dp[1]=0;进行公式展开n项递推,所得的概率为2n−1−(−1)n−13∗2n−1\frac{...原创 2020-04-15 18:03:38 · 296 阅读 · 0 评论 -
卡特兰数(n个节点的二叉树情况数量+hdu2067) (超级卡特兰数(施罗德数))
卡特兰数是组合数学中一个常出现在各种计数问题中的数列。举个栗子:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563...原创 2020-05-01 23:34:49 · 543 阅读 · 0 评论 -
lucas定理 与 扩展lucas定理(HDU 3037 以及 2015 ICL, Finals, Div. 1 J.Ceizenpok’s formula)
Lucas定理是用来求 c(n,m) mod p,p为素数的值。原创 2020-05-04 09:07:55 · 337 阅读 · 0 评论 -
二次剩余定理(URAL - 1132)
在数论中,特别在同余理论里,一个整数X对另一个整数p的二次剩余(英语:Quadratic residue)指X的平方除以p得到的余数。当存在某个X,式子x2≡amod px^2\equiv a\mod px2≡amodp 成立时,称“a是模p的二次剩余”当对任意不成立时,称“ a是模 p的二次非剩余”。具体的推导以及建议系统学习。对于质数2来说,每个整数都是它的二次剩余。所以讨论的都是奇素数。通过欧拉判别条件...原创 2020-05-11 11:16:25 · 1062 阅读 · 0 评论 -
快速傅里叶变换(fft + 例题 Gym100783C)
快速傅里叶变换 (fast Fourier transform), 即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。快速傅里叶变换是1965年由J.W.库利和T.W.图基提出的。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。具体的贴出学习资源,个人认为讲解的非常好。https://blog.csdn.net/ggn_2015/article/details/68922404clickcl原创 2020-05-17 17:49:12 · 2244 阅读 · 0 评论 -
P2158 [SDOI2008]仪仗队
题目:click开始分析,n的范围肯定不能取枚举斜率做,首先需要看到那么每个点与左下角的点的斜率必定不同,也就不共线,上图的线连接的太乱,我们可以除去线,枚举前面几个n会发现他们是对称的,所以我们从一边入手即可。为了让k不同,其实本质就是y1−y2x1−x2\frac{y1-y2}{x1-x2}x1−x2y1−y2不同,化简到最简分数也就是上下同除以gcd,那么发现就是互质的数,考虑每一列分析,x=2时,也就是与(1-1)与1互质的数,依次类推。要是熟悉欧拉函数的同学,看列的时候可以看出规律了。原创 2020-05-20 11:48:05 · 112 阅读 · 0 评论 -
Educational Codeforces Round 88 (Rated for Div. 2)E. Modular Stability
题目:click题意:问有多少组a[1],a[2]…a[k]对于任意x(x是非负整数),((xmod a[1])mod a[2]....)mod a[k]((x\mod a[1])\mod a[2]....)\mod a[k]((xmoda[1])moda[2]....)moda[k]该式,任意排列a[1]…a[k],该式值不变,1<=a[i]<=n。首先可以确定值肯定在最小的那个a[i]中,以此为突破口进行分析,要使得全排列该式值都不变。x=a1∗k+yx=a_1*k+yx=a1原创 2020-05-30 18:08:39 · 161 阅读 · 0 评论 -
斯特林数(Educational Codeforces Round 86 (Rated for Div. 2) E. Placing Rooks)
第一类斯特林数:将n个元素分为m个环(圆排列)的方案数。推导: dp(m,n)表示n个元素组成m个环的方案数,这边求方案数,有点计数dp的味道,事实也是,最后一个元素可以分两个状态,一个自己成环,另一个加入别人,dp(m,n)=dp(m-1,n-1)+dp(m-1,n)*(m-1)。第二类斯特林数:都是...原创 2020-05-01 15:15:46 · 204 阅读 · 0 评论 -
LightOJ - 1282
题目:click题意:求n的k次幂的前三位后三位。后三位直接取模,千万注意。。。可能有003这种情况保留三位输出。前三位 nk=x.y∗10lenn^k=x.y*10^{len}nk=x.y∗10len 取对数, k∗log10(n)=len+log10(x.y)k*log_{10}(n)=len+log_{10}(x.y)k∗log10(n)=len+log10(x.y),可得要知道x.y*100,要知道结果的len(具体位数减1),可推出答案。#include<cmath>#原创 2020-06-01 11:09:03 · 128 阅读 · 0 评论