![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学
lajiyuan_
已经退役啦,会不定期更新cf博客 or 其他计算机知识相关的博客.
展开
-
【HDU 4135 Co-prime】容斥定理+质因数分解
HDU4135 题意 求A-B之间与N互质的数的个数 做法 我们首先对N分解质因数,再对其所有因子进行容斥,最后能得到所有与N不互质的数的个数,最后用n减去这个个数,就是与n互质的数的个数。#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>...原创 2018-09-11 13:40:57 · 196 阅读 · 0 评论 -
【51NOD1179最大公约数】 暴力枚举统计
51NOD1179最大的最大公约数 求给定n个数两两之间最大公约数的最大值,由于n只有5e4,我们可以(nsqrtn)枚举出所有数的所有因子,对所有出现次数大于两次的因子取max就可以了。(A了之后想了一下可以类似埃筛大概nlogn就可以做掉此题 nsqrtn代码390ms#include<stdio.h>#include<iostream>#include...原创 2018-09-14 02:20:22 · 171 阅读 · 0 评论 -
【Codeforces Round #514 (Div. 2) D. Nature Reserve】 三分+推公式
题目链接Codeforces Round #514 (Div. 2) D. Nature Reserve题意给你一些二维平面上的点,找一个与x轴相切的半径最小的圆包含所有点。做法首先如果两边都有点的情况一定是找不到这样的圆的,否则一定可以找到这样的圆首先如果两边都有点的情况一定是找不到这样的圆的,否则一定可以找到这样的圆首先如果两边都有点的情况一定是找不到这样的圆的,否则一定可以找到这样...原创 2018-10-08 11:00:23 · 267 阅读 · 0 评论 -
【51NOD-1875-丢手绢】 约瑟夫环+暴力
51NOD1875丢手绢题意就是约瑟夫环问题,n个人每次向后传递k次然后这个人退出游戏,问最后一个人是谁。这道题给出n,一共2*n个人进行游戏,要求前n个退出游戏的人序号在n+1-2n之间,由于这道题n只有14,我们只要暴力算出14种情况即可,但是这里暴力的姿势需要优雅,我们用vector模拟环,用erase模拟退出游戏,然后暴力算就可以了。代码#include<stdio.h&g...原创 2018-10-08 21:53:27 · 187 阅读 · 0 评论 -
【Codeforces Round #520 C.Banh-mi】前缀和+快速幂
C. Banh-mi题意题意就是给你一个01串,q次询问每次询问一段区间题意就是给你一个01串,q次询问每次询问一段区间题意就是给你一个01串,q次询问每次询问一段区间每次询问询问的是:最初区间内0的权值是0,1的权值是1每次询问询问的是:最初区间内0的权值是0,1的权值是1每次询问询问的是:最初区间内0的权值是0,1的权值是1每次可以移出一个字符,移除后答案加上该字符的权值每次可以移出一...原创 2018-11-15 08:47:31 · 922 阅读 · 2 评论 -
【 Codeforces Round #520 (Div. 2) B. Math】质因数分解
B. Math题意给你一个数,每次可以进行两个操作,乘一个数或者开根问最少多少次操作能使这个数变得最小做法仔细想一下就会发现,如果我们需要乘法再开根,那么一次就能把所有需要的乘法都乘上,之后不断开根就可以但是这里有一些细节问题,最终的最小值一定是原数的所有质因子相乘那么我们要乘之后变成什么值才能一直开根呢一定是每个质因子都有2k2^k2k个,而且所有质因子的k相等于是我们先算...原创 2018-11-19 23:35:32 · 159 阅读 · 0 评论 -
【51NOD1120 机器人走方格】卡特兰数+卢卡斯定理
51NOD1120 机器人走方格题意就是给你一个nn的方格,从左上到右下画一条线。一个机器人从左上走到右下,只能向右或向下走。并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?做法就是把它看成括号匹配问题,向下走看成左括号,向右走看成右括号,就变成了构造一个长度为2(n-1)的合法括号匹配序列,就是卡特兰数ans=C(2∗n−2,n−1)−C(2∗n−2,n−2)ans...原创 2018-12-09 10:28:26 · 229 阅读 · 0 评论 -
【Educational Codeforces Round 58 (Rated for Div. 2) D. GCD Counting】 分解质因子+树形DP
题目链接Educational Codeforces Round 58 (Rated for Div. 2) D. GCD Counting题意给你一个n个点的带权树,第i个点的权值为aia_iai求一条树上最长的路径,满足路径上所有点权的gcd不为1。1&amp;lt;=n&amp;lt;=2∗1051&amp;lt;=n&amp;lt;=2*10^51&lt;=n&lt;=2∗105...原创 2019-01-12 12:11:56 · 741 阅读 · 4 评论 -
【Educational Codeforces Round 58 (Rated for Div. 2) G. (Zero XOR Subset)-less】前缀异或和+线性基
G. (Zero XOR Subset)-less题意题意就是给你一个长度为n的序列每个数的大小为a[i]要求把序列分为多个连续的段,保证分完之后,无论选取那些段相异或答案都不是0,问最多可以分为多少段。1&lt;=n&lt;=2∗1051&lt;=n&lt;=2*10^51<=n<=2∗1050&lt;=ai&lt;=109...原创 2019-01-12 21:54:31 · 377 阅读 · 0 评论 -
【Codeforces Round #538 (Div. 2) F. Please, another Queries on Array?】欧拉函数+线段树+状压
F. Please, another Queries on Array?题意给你一个长度为n的序列,序列中第i个数为aia_iai,1≤ai≤3001 \leq a_i \leq 3001≤ai≤300之后有q次操作,每次操作有两种形式1:区间乘x,1≤x≤3001 \leq x \leq 3001≤x≤3002: 询问区间乘积的欧拉函数。1≤n≤4∗1051 \leq n \...原创 2019-03-02 09:54:54 · 208 阅读 · 0 评论 -
【51NOD 1103 N的倍数】前缀和+鸽巢定理
51nod1103N的倍数 题意 就是一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。 做法 首先肯定要先将所有数对n取个模数,然后想到加和的话,就往前缀和方向想一想,如果我们现在是%n意义下的前缀和,因为%n之后一共有n个取值0-n,如果这n个取值均不相同,那么我们就可以找到那个0的位置,0位置的前缀和%n就是0。如果n个取值中有两个相同,那么这两个位置之间的那段区间...原创 2018-09-11 02:46:45 · 130 阅读 · 0 评论 -
【51NOD 1040 最大公约数之和】 GCD+欧拉函数
51nod1040最大公约数之和 题意 给出一个n,求1-n这n个数,同n的最大公约数的和。 做法 我们知道最后肯定是求n的每个因子所做的贡献, 考虑因子p的贡献是 gcd(n,x)=p(x&lt;=n)gcd(n,x)=p(x&lt;=n)gcd(n,x)=p(xgca(n/p,x/p)=1gca(n/p,x/p)=1gca(n/p,x/p)=1 于是这里x的出现次数就是在小于n/...原创 2018-09-11 02:44:32 · 188 阅读 · 0 评论 -
【51NOD1060最复杂的数】 DFS
51NOD1060最复杂的数 题意就是求1-n中约数个数最多的数,1<=n<=1e181<=n<=1e181n=2a1∗3a2∗5a3∗7a4∗.......n=2a1∗3a2∗5a3∗7a4∗.......n={2}^{a1}*{3}^{a2}*{5}^{a3}*{7}^{a4}*....... 我们发现当所有质数出现一次的时候,只需要15个质数就可以到达,1e17,...原创 2018-09-17 17:42:51 · 134 阅读 · 0 评论 -
【2018ICPC0沈阳网络赛】 G. Spare Tire
G. Spare Tire 题意 给出a(n)的计算方法为 an=0 n=0an=0 n=0a_n=0\ \ \ n=0 an=2 n=1an=2 n=1a_n=2\ \ \ n=1 an=3an−1−an−22+ n+1 &原创 2018-09-11 14:06:44 · 307 阅读 · 0 评论 -
容斥原理简单的入门题总结
容斥原理这里对容斥原理进行简单的总结,容斥原理主要用于求n个数能组成的乘积种类数,从这之中我们就可以引申出容斥原理的很多用法,对于给定数字求组合种类的题目,我们就要想到用lcm去运算,对于给定数求互质/不互质时,我们就要想到对给定的数进行质因数分解。下面给出一些容斥原理的入门题。容斥原理第一题HDU-2204- Eddy’s爱好 题意就是给出一个数n,问1-n中有多少个数可以表...原创 2018-09-12 22:06:12 · 3942 阅读 · 0 评论 -
【HDU-2204- Eddy's爱好】 容斥原理
HDU-2204- Eddy’s爱好 题意就是给出一个数n,问1-n中有多少个数可以表示为m^k,m,k均为正整数且k>1 由于这里k是大于1的,所以我们想一下哪些k是可以被替代的,例如一个数如果可以被表示为m4m4m^4,那么他一定可以被表示为(m2)2(m2)2(m^2)^2,所以我们知道了只要枚举所有质数次幂的组合就可以了,同样当我们枚举2的整数次幂和3的整数次幂都会枚举到6,所...原创 2018-09-12 22:10:48 · 166 阅读 · 0 评论 -
【HDU-3208-Integer’s Power】容斥原理+DP
HDU-3208-Integer’s Power 题意就是定义power(x)power(x)power(x)为xxx能被表示为nknkn^k中最大的kkk,例如power(9)=2,power(32)=5,power(18)=1power(9)=2,power(32)=5,power(18)=1power(9)=2,power(32)=5,power(18)=1,给出l,rl,rl,r计算Σr...原创 2018-09-12 22:11:45 · 281 阅读 · 0 评论 -
【HDU-1796-How many integers can you find】 容斥原理
HDU-1796-How many integers can you find 题意就是给出一个整数n,一个具有m个元素的数组,求出1-n中有多少个数至少能整除m数组中的一个数 这道题就是经典的给出某个数组去组合的问题,只要对当前选中元素取lcm即可,但是要注意这题m数组会出现0,而且算术过程中ans,lcm可能会超过int,最好全程用long long 容斥原理第三题代码#inc...原创 2018-09-12 22:12:21 · 158 阅读 · 0 评论 -
【HDU-2841-Visible Trees】 容斥原理
HDU-2841-Visible Trees 这道题题意就是给出第一象限的n*m个点,求出站在原点可以看见多少个点 将题意稍微转化一下就变成了,求(a,b)(1<=a<=n,1<=b<=m,gcd(a,b)=1)(a,b)(1<=a<=n,1<=b<=m,gcd(a,b)=1)(a,b)(1...原创 2018-09-12 22:12:56 · 139 阅读 · 0 评论 -
【ZOJ-2836-Number Puzzle】 容斥原理
ZOJ-2836-Number Puzzle 题意就是给出一个整数m,一个具有n个元素的数组,求出1-m中有多少个数至少能整除n数组中的一个数 这道题就是经典的给出某个数组去组合的问题,只要对当前选中元素取lcm即可 容斥原理第五题代码#include<stdio.h>#include<iostream>#include<algorithm>...原创 2018-09-12 22:13:28 · 153 阅读 · 0 评论 -
【ZOJ-3233-Lucky Number】 容斥原理
ZOJ-3233-Lucky Number 题意就是给你一堆幸运数,在给你一堆不幸运数,要求一个区间内的数有多少个数满足至少是一个幸运数的倍数,而且不是每个不幸运数的倍数。 我们可以把这两个问题分开来看,首先我们可以利用容斥求出所有至少是一个幸运数的倍数的数的个数,我们只要在这个过程中给把满足第二种条件的保留就可以了,把第二种条件进一步表达,就变为了不能整除所有不幸运数的lcmlcmlcm,而...原创 2018-09-12 22:14:07 · 185 阅读 · 0 评论 -
【URAL-1091-Tmutarakan Exams】 容斥原理+组合数
URAL-1091-Tmutarakan Exams 将题意简化一下就是给你一个数s,要用1-s构造一个长度为序列保证n个数的最大公约数为1,且n个数均不相同。 我们直接构造不太好想,于是我们想如何构造出不满足情况的序列,那么就是最大公约数>=2.由于这道题s,k均<=50.所以我们可以枚举gcd为2-S,同样如果一个序列的gcd为4,那么他一定被gcd为2的计算过,所以我们还是只...原创 2018-09-12 22:14:47 · 144 阅读 · 0 评论 -
【POJ-1091-跳蚤】 容斥原理+质因数分解
POJ-1091-跳蚤 题意简化之后就是给你一个数m,一个数n,让你构造一个长度为n+1的序列,第n+1个数为m,保证这n+1个数<=m,而且这n+1个数的最大公约数为1。 我们无法直接计算最大公约数为1的组合数,所以我们只要计算出所有最大公约数不为1的再用总排列数减去即可,最大公约数不为1的时候只能为m的因子,所以我们只要对m的质因子容斥一下,求一下每种质因子的组合作为最大公约数的情况...原创 2018-09-12 22:15:23 · 198 阅读 · 0 评论 -
【LightOJ - 1027 A Dangerous Maze】概率期望
LightOJ - 1027 A Dangerous Maze题意有n个门,每个门有一个权值xix_ixi,如果权值为正,说明如果选择这个门,会在xix_ixi分钟后走到终点。如果权值为负,说明如果选择这个门,会在−xi-x_i−xi分钟之后返回起点,现在问从起点出发,每次随机的选择一个门,求到达终点的期望时间。做法首先,这道题要明确一件事情,只要在起点,那么到终点的期望时间就是一样...原创 2019-04-24 21:29:28 · 135 阅读 · 0 评论