数论
Dlkoiw
这个作者很懒,什么都没留下…
展开
-
组合数问题
组合数问题本题是考前缀和,需要注意的是边界的判定,比如本题,并不是取余为0就为0(如0)所以对于Cii,C00,C10,C01要特殊计算所以对于C_i^i,C_0^0,C_1^0,C_0^1要特殊计算所以对于Cii,C00,C10,C01要特殊计算#include<bits/stdc++.h>using namespace std;const int N=2020;int n,m,k;int C[N][N],ans[N][N];int main(){ int t;原创 2020-11-20 18:39:50 · 306 阅读 · 0 评论 -
逆流
逆流#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int n,l,t;int x[N],w[N],st=1;int main(){ scanf("%d%d%d",&n,&l,&t); t%=l; for(int i=1;i<=n;i++){ scanf("%d%d",&x[i],&w[i]); if(w[i]==1) x[i]+=t; if(原创 2020-10-30 21:08:43 · 207 阅读 · 0 评论 -
构造
构造很容易想到的一个思路,然后用插板法即可#include<bits/stdc++.h>using namespace std;const int N=1e5+5;typedef long long ll;int n,m;ll mod=1e9+7;ll ksm(int x,int pow){ ll ans=1,res=x; while(pow){ if(pow&1) ans=ans*res%mod; res=res*res%mod; pow>>原创 2020-10-28 18:09:55 · 192 阅读 · 0 评论 -
密码
密码本题是个结论题,每个数都可以用科学计数法表示,然后对于科学计数法的基数部分取三位就行了本题是个结论题,每个数都可以用科学计数法表示,然后对于科学计数法的基数部分取三位就行了本题是个结论题,每个数都可以用科学计数法表示,然后对于科学计数法的基数部分取三位就行了#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,k;int main(){ scanf("%d%d",&n,&k)原创 2020-10-21 18:40:58 · 145 阅读 · 0 评论 -
石头
石头这题我没想到(连正解的边都没挨上),所以直接复述题解这题我没想到(连正解的边都没挨上),所以直接复述题解这题我没想到(连正解的边都没挨上),所以直接复述题解首先发现n太大,所以我们要想办法找到一些答案的限制首先发现n太大,所以我们要想办法找到一些答案的限制首先发现n太大,所以我们要想办法找到一些答案的限制然后我们发现3∗n2−3∗n+1=6∗(n2)+1然后我们发现3*n^2-3*n+1=6*\tbinom{n}{2}+1然后我们发现3∗n2−3∗n+1=6∗(2n)+1任意一个正整数都能写成原创 2020-09-22 17:38:18 · 115 阅读 · 0 评论 -
Clock Sequence
Clock Sequence本题一看就不会,但怎么看都像有规律的样子,所以我们考虑打表,但看表看了半天我都没看出规律,所以最后只交了一个暴力本题可以找出规律,以15个为周期,有重复的部分123432,234321,343212,432123,321234,123432,432123,212343,432123,123432,321234,432123,343212,234321,123432最后的数也有规律1,2,3,4,32,123,43,2123,432,1234,32123,43212,3原创 2020-09-13 10:16:57 · 206 阅读 · 1 评论 -
Let's play OSU
Let’s play OSU本题和OSU很像 ——升级版首先,老套路,定义f[i]为长度为i的连续个数的期望,ans[i]表示长度为i,平方的期望首先,老套路,定义f[i]为长度为i的连续个数的期望,ans[i]表示长度为i,平方的期望首先,老套路,定义f[i]为长度为i的连续个数的期望,ans[i]表示长度为i,平方的期望我们发现,f[i]=∑xx∗p=∑x∑i=1xp(长度为x的概率)我...原创 2020-01-03 17:31:15 · 192 阅读 · 0 评论 -
绿豆蛙的归宿
绿豆蛙的归宿本题是期望dp模板题,期望dp基本套路:若初始状态好算,就直接正推,若最终状态好算,就直接逆推然后对于本题来说,最终要走到n点,又是无环图,所以定义dp[x]为x-n的期望路程所以我们可以建反边,(入度不反着建)然后拓扑排序一下就做完了然后我们发现,dp[x]=x1∗p1+x2∗p2+……+xn∗pndp[x]=x_1*p_1+x_2*p_2+……+x_n*p_ndp[...原创 2019-12-24 16:56:47 · 218 阅读 · 1 评论 -
ball
ball这题主要运用一个很巧妙的转换,显然,求期望,由于n和m,所以我们应该用二维数组维护x2的期望这题主要运用一个很巧妙的转换,显然,求期望,由于n和m,所以我们应该用二维数组维护x^2的期望这题主要运用一个很巧妙的转换,显然,求期望,由于n和m,所以我们应该用二维数组维护x2的期望但x2的期望不好求,以我们考虑补足贡献,再引入一个新的量(x)的期望但x^2的期望不好求,以我们考虑补足贡献,...原创 2019-12-13 22:20:41 · 97 阅读 · 0 评论 -
Card
Card这题其实是直接用定义E(n)表示n天的价值期望E(n)=∑i=1np[i]∗iE(n)=\sum_{i=1}^{n}p[i]*iE(n)=∑i=1np[i]∗i其中p[i]表示至少有一个i的概率根据小学数学知识,至少有一个可以从反面考虑,然后用1减去根据小学数学知识,至少有一个可以从反面考虑,然后用1减去根据小学数学知识,至少有一个可以从反面考虑,然后用1减去即有p[i]=1...原创 2019-12-13 21:09:47 · 160 阅读 · 0 评论 -
序列
序列monyhzc (感谢他让我明白了)————————————————————————————————————我们先观察,发现每次只会从上一个序列多增一个数,其实就是说是将原序列复制一遍,并在适当位置添上一个数,还要保证添上的数大于后面的一个数,其实我们可以认为是将原序列中的一个数前面长出一个比它大的数因为最后一个位置不好算长出来,所以我们可以在序列末尾补一个0,这样我们就可以表示最后一...原创 2019-12-07 09:12:35 · 200 阅读 · 0 评论 -
骰子
骰子这题需要用到组合数;——————————————————————————————————————对于数论题,我们一般先观察题目有什么性质,我们观察样例发现,答案是对称的,因为两端的构造方案是一定的,例如2=1+1,2k=k+k,很好理解然后我们又发现,对于一个偶数2c可分成(1,2c−1)(2,2c−2)……(c,c)(1,2c-1)(2,2c-2) ……(c,c)(1,2c...原创 2019-12-06 21:22:25 · 156 阅读 · 0 评论 -
JEDAN
JEDAN我们发现,[l,r]相等,修改(l,r)则一定满足a数组可以达到当且仅当a中相邻两数的差不超过1,感性理解则建立dp,dp[i][j] 表示a[i]=j然后滚动数组一下#include<bits/stdc++.h>using namespace std;const int N=1e4+5;int mod=1e9+7,dp[2][N],a[N],n;int...原创 2019-12-06 19:08:43 · 366 阅读 · 0 评论 -
康托展开
康托展开考虑如何求出比原方案字典序小的方案总数那么对于a[i]位置上的字母,我们假设前i−1个字母都相同(这样就可以保证不重复),我们发现,后面比a[i]字典序小的字母放在a[i]位置一定可以比当前放置方案字典序小,然后后面其它字母随便放就行了那么对于a[i]位置上的字母,我们假设前i-1个字母都相同(这样就可以保证不重复),我们发现,后面比a[i]字典序小的字母放在a[i]位置一定可以比当前...原创 2019-11-26 17:11:32 · 153 阅读 · 0 评论 -
物理老师和生物老师的战争
物理老师和生物老师的战争套用第二类卡特林数,则合法方案总数为C(n+m,m)−C(n+m,m−1)C(n+m,m)-C(n+m,m-1)C(n+m,m)−C(n+m,m−1)然后概率就是(n-m+1/n+1)第二类卡特林数就是从(0,0)到(m,n),且不经过x=y的方案数,然后讨论一下就可以得出方案数了#include<bits/stdc++.h>using namespa...原创 2019-11-14 20:00:05 · 276 阅读 · 0 评论 -
大循环
大循环秦九韶算法f(x)=c1x1n+c2x2n−1+...+cnx1+cn+1)f(x)=c_1x_1^n+c_2x_2^{n-1}+...+c_nx_1+c_{n+1})f(x)=c1x1n+c2x2n−1+...+cnx1+cn+1)即从后往前,依次乘,就像快速幂一样,如果常数位就直接加,然后乘上x即从后往前,依次乘,就像快速幂一样,如果常数位就直接加,然后乘上x即从后往...原创 2019-11-13 20:42:41 · 276 阅读 · 0 评论 -
矩阵加速(数列)
矩阵加速(数列)矩阵优化是个很不错的工具,但struct的坑太多了!好难改.首先我们知道初始状态[f[3]f[2]f[1]]\begin{bmatrix}f[3]&\\f[2]&\\f[1]\end{bmatrix}⎣⎡f[3]f[2]f[1]⎦⎤[f[i]f[i−1]f[i−2]]\begin{bmatrix}f[i]&\\f[i-1]&\\f[i...原创 2019-11-12 21:22:34 · 203 阅读 · 0 评论 -
裴蜀定理
裴蜀定理Bezout定理:形如c1x1+c2x2+c3x3+……+cnxn=m的方程有正整数解当且仅当gcd(x1,x2……xn)∣mBezout 定理:形如 c_1x_1+c_2x_2+c_3x_3+……+c_nx_n=m的方程有正整数解当且仅当gcd(x_1,x_2……x_n)|mBezout定理:形如c1x1+c2x2+c3x3+……+cnxn=m的方程有正整数解当且仅当g...原创 2019-11-12 19:11:05 · 439 阅读 · 0 评论 -
Surgey and subway
Surgey and subway先列式子,∑i=1n∑j=1ndis(i,j)=∑i=1n∑j=1n⌈dist(i,j)2⌉先列式子,\sum_{i=1}^n\sum_{j=1}^ndis(i,j)=\sum_{i=1}^n\sum_{j=1}^n \left\lceil \dfrac{dist(i,j)}{2}\right\rceil先列式子,∑i=1n∑j=1ndis(i,j)=∑i...原创 2019-11-08 19:02:04 · 144 阅读 · 0 评论 -
走步
走步设E(p)表示走p步时距离平方的期望设E(p) 表示 走p步时距离平方的期望设E(p)表示走p步时距离平方的期望猜结论:E§=p;E(1)=1;E(1)=1;E(1)=1;则E(p)=E((p−1))+1−2cosθ则E(p)=E((p-1))+1-2cos\theta则E(p)=E((p−1))+1−2cosθE(p−1)/2π\sqrt {E(p-1)}/2πE(p−1)/2π...原创 2019-11-08 17:29:14 · 186 阅读 · 0 评论 -
三角形
三角形因为double的精度是16位,所以本题直接算斜率就可以过了因为double的精度是16位,所以本题直接算斜率就可以过了因为double的精度是16位,所以本题直接算斜率就可以过了还要注意一点,还要注意一点,还要注意一点,fori=1−>nfor i=1->nfori=1−>nforj=i+1forj=i+1forj=i+1可以省时间#include<bit...原创 2019-11-07 19:06:24 · 129 阅读 · 0 评论 -
剑与魔法
剑与魔法这题很明显就是排序,我一时间没想到堆排,但被题意杀了,我以为最后只能取限制的个数,所以我把大于限制的个数都扔了。。。——————————————————————————————————————我们发现可以被选择的个数一定在限制里面,所以每次只需要将个数在限制中的元素加入决策集就行了————————————————————————————————————两种做法1.堆排(优先队列...原创 2019-11-06 17:34:18 · 167 阅读 · 0 评论 -
Add on a tree
Add on a tree因为是任意给数都要实现,所以如果有出度为2的点肯定不行,因为这样叶节点一次至少控制两条边,要修改这两条边又只能经过这个叶节点,满足不了任意————————————————————————————————————而其他情况都是可以的,一个至少2个子节点的节点为A,子节点为B,C因为加的是实数,所以我们发现我们可以使AB和AC边一个边为0,另一个变得和上面的边一样,...原创 2019-11-02 11:15:07 · 166 阅读 · 0 评论 -
N染色
N染色本题基本都打表过的,我来一个数学推导——————————————————————————————————————记边数为n的方案总数为dp[n]对于新的一条边,与这条边相邻的边可能相同也可能不同,对于新的一条边,与这条边相邻的边可能相同也可能不同,对于新的一条边,与这条边相邻的边可能相同也可能不同,若不同,即为dp[n−1]的方案数,而本条边就有m−2种填法若不同,即为dp[n-1...原创 2019-11-02 09:13:00 · 350 阅读 · 0 评论 -
HNOI(数列)
这题没有信息思想,其实就是数学推式子——————————————————————————————————————定义差分数组ai定义差分数组a_i定义差分数组ai∑a1=1m∑a2=1m.......∑ak−1=1m(n−∑i=1k−1)=mk−1n−∑a1=1m......∑ak−1=1m∑i=1k−1a[i]\sum _{{a_1}=1}^m\sum _{a_2=1}^m .........原创 2019-10-25 18:39:26 · 316 阅读 · 0 评论 -
数论——期望——rabbit
rabbitrabbit 等概率跳,先导一波期望值?等一下:发现E(i)=0.5∗(E(i+1)−E(i))+0.5∗(E(i−1)−E(i))E(i)=0.5*(E(i+1)-E(i))+0.5*(E(i-1)-E(i))E(i)=0.5∗(E(i+1)−E(i))+0.5∗(E(i−1)−E(i))即一次操作可以往i+1跳,也可以往i−1跳\color{red}即一次操作可以往i+1跳...原创 2019-07-25 21:46:30 · 203 阅读 · 0 评论 -
BZOJ——星器
这道题告诉我们信息中也有物理题意Magic Land上的时间又过了若干世纪……现在,人们谈论着一个传说:从前,他们的祖先来到了一个位于东方的岛屿,那里简直就是另外一个世界。善于分析与构造的Magic Land上的人们总是不明白那里的人们是如何不借助精确的实验与计算驱动和操纵魔法。偶然地,一个魔法使(Magician)来到了Magic Land,在临走的时候留下了一个神奇的盒子,叫做星器(C...原创 2019-07-26 08:00:57 · 213 阅读 · 0 评论 -
数论——莫比乌斯
莫比乌斯其实和莫比乌斯一点关系也没有正常的莫比乌斯是没有后面的min(n/i,m/j)min(n/i,m/j)min(n/i,m/j)这个系数的,所以就不会了。。。。。因为怎么消元都还至少要枚举两个数,即一定会炸——————————————————————————————————————————————遇到这种情况,APIO的选手告诉我们好方法:打表—————————————————...原创 2019-07-26 12:58:17 · 324 阅读 · 0 评论 -
Codeforces——XOR Guess
XOR Guess本题看起来很难,因为没做过交互题2^14次方,直接暴力不好做,所以要用数学推导我们发现0作为异或的时候,满足原来原创 2019-09-06 17:58:00 · 158 阅读 · 0 评论 -
平均数
最大值的式子是:(sum[i]−sum[j])/(i−j)(sum[i]-sum[j])/(i-j) (sum[i]−sum[j])/(i−j) (i−j>=m)(i-j>=m)(i−j>=m) 很像0/1规划所以我们要找到使答案最大的i,j首先二分出一个midmidmid比较(sum[i]−sum[j])/(i−j)与mid(sum[i]-su...原创 2019-09-06 22:11:44 · 97 阅读 · 0 评论 -
数论——dove的疑惑
dove的疑惑本题看起来是中国剩余定理,但其实不是,我们发现答案就是总共的方案数减去合法的方案数因为modmmod mmodm意义下,所以a∈(0,m−1)a∈(0,m-1)a∈(0,m−1) 共m个数,所以a共有m种取值,所以总方案是∏mi∏mi∏mi合法的方案就是满足所有同余方程的方案,x=ik,y=jk,则将x分成i段k,将y分成j段k,在modi意义下,x分为i段,每段k个...原创 2019-09-20 17:24:31 · 338 阅读 · 1 评论 -
数论——Yet Another Subarray Problem
Subarray原创 2019-09-21 07:52:14 · 172 阅读 · 0 评论 -
数论——coin sum
硬币求和这道题实在是太迷惑了,先说求最小值,但其实既然堆一座塔,其实答案是不会变的。答案都是1/2∗∑i=1n1/2*\sum_{i=1}^{n}1/2∗∑i=1n 1/n\sqrt{n}n但是因为n<=1e18,所以不能直接求,这时就需要化简式子因为12∗1n>1n+n+1=n+1−n\frac{1}{2}*\frac{1}{\sqrt{n}}>\frac{1}{...原创 2019-09-25 11:00:59 · 110 阅读 · 0 评论 -
市场
市场本题其实就是道线段树裸题,下去整操作可以装换为数字相等时的区间减法关键是怎么算出时间复杂度时间复杂度因为每次除数至少为2,所以一个数最多除log次因为每次除数至少为2,所以一个数最多除log次因为每次除数至少为2,所以一个数最多除log次由于存在加法,所以不能直接说明只能log次。由于存在加法,所以不能直接说明只能log次。由于存在加法,所以不能直接说明只能log次。若最大值小于...原创 2019-10-05 21:00:11 · 102 阅读 · 0 评论 -
Numbers on a Circle
Numbers on a Circle我们发现正推不好判断,不妨逆推,逆推每一步引理 :对于每一步,得到的b[i]都不可能比原来的a[i]小。证明:因为开始的元素都是正数,无论怎么操作都不可能使原数变小——————————————————————————————————————————————因为开始时每个数都是正数,对于b数组最大的元素来说,左右两边的元素都不能减去最大的元素,因为减去...原创 2019-10-06 21:45:21 · 167 阅读 · 0 评论 -
NP问题
NP问题(n<=100)我觉得出题人并不是为了考验心理而出,而是因为大家的想法中n必须是这个范围——————————————————————————————————————————————一条直线左边的点数和右边的点数不会变 (直线上的点根据需要去定义在左边或右边)这个很好证,每次直线的移动会使一个点更换位置,而直线上的点可以根据需要定义,因为最后统计答案的直线上的数和在直线上的先...原创 2019-10-07 17:23:59 · 343 阅读 · 1 评论 -
数论——费马平方和
原题链接题意很简单,但如何做呢? 。。。。因为结论我也不会证,所以直接上结论:根据费马平方和可知当且仅当质数p=4*k+1(k为正整数)时才能满足结论#include<bits/stdc++.h>using namespace std;const int N=300010000;int l,r;int prime[300000000];int ans=0,cnt...原创 2019-07-25 12:54:00 · 663 阅读 · 0 评论