数学
FeBr2
(๑•̀ㅂ•́)و✧
展开
-
容斥——HDU 4407
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4407题意:见链接分析:因为区间是[1,N],所以我们可以先用求和公式得到和,然后利用容斥定理找出区间内并且与p不互质的数的和。再做差,就可以得到区间内与p互质的数的和。tips:对于一个区间[1, x],x/v表示区间内能被v整除的数的个数。所以对于p的一个质因子组合v,我们可以直接求出区间[x原创 2017-04-23 11:17:51 · 323 阅读 · 0 评论 -
高斯消元法 (模板)
/* 用于求整数解得方程组. */#include <iostream>#include <string>#include <cmath>using namespace std;const int maxn = 105; //矩阵大小int equ, var; // 有equ个方程,var个变元。增广阵行数为equ, 分别为0到equ - 1,列数为var + 1,分别为0到var.转载 2016-08-15 14:35:07 · 1121 阅读 · 0 评论 -
高斯消元法——HDU 5833
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5833分析: 给出n个数,从中取一个数或者取多个数相乘得到完全平方数,问有多少种取法。题解: 因为每个数的大小为[0,1018][0, 10^{18}],每个数的质因子大小不超过2000,又2000以内的质数只有303个,所以我们可以先预处理一遍:把每个数质因子分解存进数组,若含有同一个质因子原创 2016-08-15 13:04:29 · 418 阅读 · 0 评论 -
预处理找到前N个质数
较快的方法预处理找到前N个质数,质数最大不超过Max。int prime[N];void getPrime() //预处理找出前几个质数{ for(int i=2;i<=Max;i++) { if(!prime[i])prime[++cnt]=i; //第cnt个质数 for(int j=1;j<=cnt&&prime[j]<=Ma原创 2016-08-15 14:03:15 · 780 阅读 · 0 评论 -
大数取模 (模板)——HDU 5832
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5832分析: 给出一个长度最大为10000000的数字,判断它模137和模73是否都余0。题解: 直接套用大数取模: 针对数字位数超过最大整数范围限制的数进行取模操作,每次对一位取模 根据 (ab)%mod=(a%mod)*(b%mod);把大数换为字符串处理,之后对每一位数字进行取模大数原创 2016-08-15 10:43:45 · 597 阅读 · 0 评论 -
矩阵快速幂——RGB plants (Gym 101061 B)
题目链接: http://codeforces.com/gym/101061/problem/B分析: 叨逼叨:(又是死在数学题上,这次一来就把式子合并去算递推公式去了,真是分分钟切腹自尽的节奏,又废了3个小时,下次看到数学题还是先从最初始的公式开始推,一个方向不行就换个方向,不要死磕一种方法!!!!) 题意: 种下1朵红花,1朵绿花,1朵蓝花; 一朵红花一晚上后变成1朵红花,2朵绿花,原创 2016-08-13 19:53:48 · 542 阅读 · 0 评论 -
贪心+数学——2016 (湖南省第十二届大学生计算机程序设计竞赛 A)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1803分析: 给出连个数n,m(数据范围十亿),求1-n中的数a乘以1-m中的数b得到的结果a*b中有多少个是2016的倍数。对于这种整除问题。我们可以直接分余数和商来做。题解: 我们可以发现对于任意一组数,乘以1-2016和乘以2017-4032得到的结果中2016的倍数的个数原创 2016-09-03 22:00:53 · 957 阅读 · 0 评论 -
数学 ( 排列组合 )——HDU 5194
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5194分析: 给出n个黑球,和m个白球,随机取球,求上一次拿出白球,这一次拿出黑球的次数的期望。题解: 这是一道非常简单的二项分布,我们可以计算出在i位置出现白球后再i+1位置出现黑球的概率为mm+n×nm+n−1\frac{m}{m+n}×\frac{n}{m+n-1},每组数据可能有m+n原创 2016-08-05 13:58:51 · 494 阅读 · 0 评论 -
数学 ( 容斥原理&&求区间内互质数的个数)——Co-prime ( HDU 4135 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4135分析: 给出区间[A, B],求其中与m互质的数的个数。题解: 利用容斥定理选出[1, X]区间内和m互质的数的个数。代码:LL Find(LL num, LL m)//找出[1, num]与m互质的数的个数{ LL ans=0,tmp, flag; for(LL i原创 2016-08-04 21:39:58 · 2672 阅读 · 0 评论 -
数位DP(组合数打表)—— Round Numbers ( POJ 3252 )
题目链接: http://poj.org/problem?id=3252分析: 求出S~F中转换成二进制数后0的个数≥1的个数的数字的个数。0的个数大于1的个数的数可以用组合数来做。题解:算出1~F+1和1~S的满足条件的个数相减即可。先一个数转换乘二进制形式存入数组中: void change(int n){ number[0]=0; //nubmer[0]用来原创 2016-07-20 20:15:29 · 475 阅读 · 0 评论 -
错排+组合——HDU 2049
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2049分析: n对新婚夫妇,新郎找新娘,每次有m个新郎找错,求找错的方法有多少种题解: 有m个新郎找错,即组合问题(nm)\binom{n}{m};m个新郎找错的方法,即错排问题AC代码:/**************************************************原创 2016-09-24 11:21:53 · 321 阅读 · 0 评论 -
搜索——TOJ 4165
题目链接:http://acm.tju.edu.cn/toj/showp4165.html分析:大洲洲学长有3个属性,给出N组属性加成的方法,问自由组合后使得学长的三个属性至少增加x,y,z的组合有多少种。题解:从没一组属性开始往后搜,每次选择将这一组属性与后面的属性相加或者不加,直到当前的值达到X,Y,Z,这个时候后面剩下的n种方法可选可不选,根据计数原理,选择的方法有2n2^n种,累加即可。原创 2016-12-25 01:47:25 · 466 阅读 · 0 评论 -
数学——CodeForces #410 div.2
题目链接: http://codeforces.com/contest/798/problem/C题目:见链接分析:我们可以发现,对于相邻的两个奇数,我们对前一个做操作,会使得他们变成两个偶数,即gcd 最小为 2;再者,对于任意一个数,做2遍操作后,它和它后面的元素都会变为原来的2倍(符号不管),所以我们对于单个的奇数,做2次操作,就会也会使得gcd最小为2。这样得到的操作次数一定是最小的。首原创 2017-04-22 10:01:10 · 329 阅读 · 0 评论 -
矩阵快速幂——HDU 4565
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4565题意:给出 a,b,n,m 0<a,m<215,(a−1)2<b<a2,0<b,n<231a,b,n,m \ 0< a, m < 2^{15}, (a-1)^2< b < a^2, 0 < b, n < 2^{31} 求解: 分析:直接怼肯定会烂掉,但是好像也没有什么大浮点数的快速幂。我尝试过用原创 2017-04-16 19:47:54 · 395 阅读 · 0 评论 -
同余——HDU 4596
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4596题意:给出N组数据X,Y,Z,判断是否存在两组数据,使得存在某一个数ID,使得 ID%X1=Y1||Z1 andID%X2=Y2||Z2 ID\%X_1=Y_1||Z_1 \ and ID\%X_2 = Y_2||Z_2 ;分析:那么我们可以求出X1,X2X1,X_2的GCDGCD后,判Y1,Z原创 2017-04-15 20:48:17 · 851 阅读 · 0 评论 -
组合数学——Codeforces Round #404 (Div. 2) D. Anton and School - 2
题目链接:http://codeforces.com/problemset/problem/785/D题意:给出一个只含有 ‘(’ 和 ‘)’ 的字符串,求其中含有多少个RSBS子序列。RSBS定义为:不为空,长度为偶数,前一半全是’(‘,后一半全是’)’分析:一个很显然的思路就是原创 2017-04-02 18:46:01 · 344 阅读 · 0 评论 -
数学——Kickstart 2017 practice Round #B
题目链接: https://codejam.withgoogle.com/codejam/contest/6304486/dashboard#s=p1题意: 给出一个N和M,求由N个0和M个1构成的串中出现满足(从左往右数,0出现的次数永远大于1的次数)的串出现的概率分析: 这种01串的题可以转换成 一个 长度为N*M的二维平面,出现0则为往 x 轴方向走,出现 1 则为往 y 轴方向走,题意原创 2017-02-19 23:46:11 · 1720 阅读 · 0 评论 -
矩阵快速幂——HDU 2604
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2604题意: L个人排队,有男(m)有女(f),求除了包含fmf和fff子串有多少种排法分析: 用f(n)表示n个人满足条件的结果,那么如果最后一个人是m的话,那么前n-1个满足条件即可,就是f(n-1); 如果最后一个是f那么这个还无法推出结果,那么往前再考虑一位:那么后三位可能是:mmf,原创 2017-02-18 21:59:15 · 365 阅读 · 0 评论 -
暴力(腊鸡)—— ACdream 1068
题目链接: http://acdream.info/problem?pid=1068题意: 看题分析: 暴力,(MD,居然直接搜就可以)AC代码:/************************************************************************* > File Name: test.cpp > Author: Akira原创 2017-02-16 21:57:10 · 314 阅读 · 0 评论 -
数学推导——ACdream 1067
题目链接: http://acdream.info/problem?pid=1067题意: 在圆上取N个点,以至将圆弧分成N等份,求任取3个点能构成多少个锐角三角形分析: 当3个点组成锐角三角形ABC时,圆心O一定在三角形内部,∠AOB , ∠BOC, ∠COA一定小于180度(∠AOB + ∠BOC + ∠COA = 360度)(1)当N为偶数时,用1, 2 …. k , k+1,原创 2017-02-16 21:25:04 · 313 阅读 · 0 评论 -
数学 ( 解高次同余方程 )——Discrete Logarithm Problem ( UVA 7457 )
题目链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5479分析题目就是让我们解高次同余方程 ax≡b(modP)a^x ≡ b ( mod P) , 不过p最大为2的13次方,所以可以直接模拟做。但是解高次同余方程还是由模板的。原创 2016-07-31 15:07:30 · 1759 阅读 · 0 评论 -
数学 ( 鸽巢原理 )——Halloween treats ( POJ 3370 )
题目链接: http://poj.org/problem?id=3370分析&&题解:题意就是给出一个数列,问有没有一个子序列能被c整除。组合数学中由如下结论: 设a1,a2,...,ama_1,a_2,...,a_m是正整数序列,则至少存在整数 kk 和 ll,0≤k<l≤m0≤k<l≤m,使得m|(ak+1+ak+2+...+al)m|(a_{k+1}+a_{k+2}+...+a_l)。原创 2016-08-04 09:48:13 · 458 阅读 · 0 评论 -
数学 ( 卡特兰数 )——Scoop water ( CSU 1320 )
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1320分析: 问题可以转化成求含有n个0和n个1的长度为2n的01串中,从左往右扫时,在每一个位置经过的0不多与1的串01串的个数。 这是一道关于卡特兰(Catalan)数的问题。题解:Catalan数的原理 令h(0)=1,h(1)=1,catalan数满足递推式[1] :原创 2016-08-03 16:27:34 · 678 阅读 · 0 评论 -
同余与乘法逆元
同余:定义:设m≠0,若m∣a-b,即a-b=km,则称a与b同余,余数为m。充要条件:a、b关于模m同余的充要条件是整数a和b被同一正整数m除时,有相同的余数。性质: 同余类:根据整数模n所得的余数,可以把整数分成n个等价类:[0],[1],…,[n-1]。 包含整数的模n等价类为:[a]n={a+kn| k∈Z}。例题:求3406写成十进位数时的个位数. 根据题意是要求a满足34原创 2016-07-12 16:47:15 · 3267 阅读 · 0 评论 -
中国剩余定理(CRT 孙子定理)——Biorhythms(POJ 1006)
定义:中国古代求解一次同余式组(见同余)的方法。表述: 设正整数两两互素,则同余方程组 有整数解。并且在模下的解是唯一的,解为 其中,而为模的逆元。代码:int CRT(int a[],int m[],int n) { int M = 1; int ans = 0; for(int i=1; i<=n; i++) M原创 2016-07-13 10:53:43 · 868 阅读 · 0 评论 -
同余与扩展欧几里得解模线性方程——CLooooops(POJ 2115)
题目链接: http://poj.org/problem?id=2115分析: 题目大意为求解能使得 A + x * C = B 的最小的x , 0 ≤ x < 2^k .题解: 我们可以先构造模线性方程,原式转换为 x * C = B - A ,即有 C*x = B - A (mod 2^k),(此处用到了模运算规则),得出标准模线性方程,利用扩展欧几里得即可求解。注意:int类型的原创 2016-07-13 18:12:49 · 363 阅读 · 0 评论 -
贪心——Happy Line (CodeForces 549G)
题目链接: http://codeforces.com/problemset/problem/549/G分析:数据范围很大,n为200000,ai为10^9,所以相直接模拟做肯定会TLE(半小时成功T了QAQ) 。以下转载自 (http://blog.csdn.net/qq_24451605/article/details/46586533)题解: 我们假设两个人a和b,a,b的钱分别是转载 2016-07-14 11:32:09 · 427 阅读 · 0 评论 -
构造法——Diverse Permutation ( CodeForces 482A )
题目链接: http://codeforces.com/problemset/problem/482/A分析: 这是一道构造法构造数学模型的题,建议先列出一定数量数据,然后从中寻找规律,建立模型。题解: 如果数组长度为n,间隔数为k的话,我们可以假设k=n-1,然后列出n=4, n=5, n=6, n=7时候的数组的取值。取值的时候可以用这种方法:每次设第k个位置为1,那么它与之后元素的差原创 2016-07-15 21:38:53 · 504 阅读 · 0 评论 -
构造法——The table ( CodeForces 226D )
题目链接: http://codeforces.com/problemset/problem/226/D分析: 一看数据范围都是100,可能就可以直接做,那么就不管三七二十一,直接上。题解: 先敲俩find函数,一个扫所有行,如果哪行的和为负,直接返回,另一个扫所有列。然后while大判断,如果两个函数有返回,返回的是行,就翻转那行,重新计算和;返回的是列,就翻转那列,重新计算和。用两个数原创 2016-07-15 21:44:15 · 339 阅读 · 0 评论 -
欧拉定理——PowMod ( HDU 5728 )(2016 Multi-University Training Contest 1 1006)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5728分析: 题中有 k = ∑(m,i=1) φ(i∗n) mod 1000000007,即求和函数 sum(n, m) = ∑(m,i=1) φ(i∗n) mod 1000000007. 那么考虑将质因子p的贡献单独处理,可以得到 sum(n, m) = φ(p) × sum(n/p,原创 2016-07-22 20:01:13 · 503 阅读 · 0 评论 -
数学——Acperience ( HDU 5734) ( 2016 Multi-University Training Contest 2 1001 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5734分析: 给出一个已知向量W = ( w1, w2, …, wn ),和一个不确定向量B = ( b2, b2, …, bn )(bi ∈{+1, -1}),还有一个缩放因子α≥0。求||W-αB||^2的最小值 Note: ||X|| = √x1^2+⋯+xn^2 (X= x1, x2,原创 2016-07-22 12:08:28 · 332 阅读 · 0 评论 -
扩展欧几里得算法(内含GCD,LCM)
最大公约数性质:定理:如果a,b是不全为0的任意整数,则gcd(a, b)是a与b的线性组合{ax+by:x,y∈Z}中的最小正元素。推论1:对于任意整数a,b,如果d|a并且d|b,则d|gcd(a, b)。推论2:对于所有整数a和b以及任意非负整数n,gcd(an, bn)=n*gcd(a,b)。推论3:对所有正整数n,a和b,如果n|ab并且gcd(a, n)=1,则n|b。欧几里得算原创 2016-07-12 16:04:50 · 1566 阅读 · 0 评论 -
n ! 的素数因子分解式
N!= p1^t1 * p2^t2 * p3^t3* … * pk^tk(其中,p1, p2, … pk为素数,素数可以组成每一个大于1的数码,1< N <= 10^6)显然可以通过素数线性筛除每一个pi,因为1 < pi <= N,那么问题在于如何求出 ti (即素数pi的个数)。把 N! 分成奇偶两部分 ( 假设N为偶数 )N! = 1*2*3*4*5*6*……*N N!=(2*4*6*8原创 2016-07-12 15:48:19 · 1158 阅读 · 0 评论 -
矩阵快速幂——Fibonacci ( POJ 3070 )
题目: In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …An alternati原创 2016-07-12 14:56:21 · 302 阅读 · 0 评论 -
数学 ( 卡特兰数 大数打表模板 )——Train Problem II ( HDU )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1023卡特兰数打表模板://*******************************//打表卡特兰数//第 n个 卡特兰数存在a[n]中,a[n][0]表示长度;//注意数是倒着存的,个位是 a[n][1] 输出时注意倒过来。//***************************转载 2016-08-03 17:07:30 · 405 阅读 · 0 评论 -
计算几何 ( 平面欧拉定理+大数运算 )——UVA 10213
模板及内容转载自 http://blog.csdn.net/metaphysis/article/details/6457966#comments(侵删)题目: 分析:一个圆被圆上 n 个点的连线所划分,能得到的最大区域数是 1 + C(n, 2) + C(n, 4)。具体可参见 维基网页 http://en.wikipedia.org/wiki/Dividing_a_circle_into转载 2016-07-25 21:38:19 · 637 阅读 · 0 评论 -
数学 ( 错排问题 )——HUD 2048
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2048分析: 这是一道错排问题,属于组合数学中的问题之一。若一个排列中所有的元素都不再自己原来的位置上,那么这样的排列就称为原排列的一个错排。n个元素的错排数记为D(n)。错排公式:把第n个元素放在一个位置,比如位置k,一共有n-1种方法;放编号为k的元素,这时有两种情况: ⑴把它放到位置n,原创 2016-08-03 15:03:27 · 627 阅读 · 0 评论 -
数学 ( 微分方程+物理问题:狐狸追兔 )——Rower BO ( HDU 5761 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5761分析: 小船从(a, 0)出发,要抵达正下方的原点(0, 0)处,小船静水速度为V1且方向始终指向原点,水流速度为V2,求抵达时间t。据竞赛同学告知,这是一道高中物理竞赛中的狐狸追兔问题,然并卵,并不会 T^T解析: 列出极坐标方程: r = -v1 + v2cosα α = -v2原创 2016-07-26 20:07:51 · 3280 阅读 · 0 评论 -
CRT+容斥定理——Luck7 ( HDU 5768 ) ( 2016 Multi-University Training Contest 4 1005 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768分析: 给出区间 [x,y][x, y] 和 数字n,再给出n行,每行为ai 与 pi,求出区间内 7 的倍数且模ai余数不为pi的数的个数。我们可以用CRT求出所有模ai余pi的数。题解: 利用CRT和二进制状态压缩计算不满足条件的数,然后用容斥定理计算答案参考代码:#include原创 2016-07-29 13:32:16 · 419 阅读 · 0 评论 -
约瑟夫环问题——(Hdu-5643,King's Game)
约瑟夫环问题解释:当剩下n个人的时候,他们的编号设为为0、1、2、3、4.....n-1。假定最后编号为dp[n]的人会留下来因为数到m的人会出列,那么在当前回合编号为 (m-1)%n 的人会出列,再将当前回合编号中为 m%n 的人当做下一轮编号为0的人,以此类推,当前回合编号为 (m+i)%n 的人将成为下一回合编号为i的人当前回合(m+i)%n ——> i原创 2016-03-27 16:28:20 · 719 阅读 · 0 评论