数学
文章平均质量分 70
SuperSunQ
知人者智,自知者明!胜人者有力,胜己者强!
展开
-
数学·Euler函数·UVA-10820 Send a Table
题意:给你一个数n,求出任意整数对(x, y)互质的个数,其中x,y均<=n。解题思路:我们可以通过欧拉函数求解出任意小于n的数中与n互质的个数。由于是整数对,(1,2)不同于(2,1)所以要*2.AC代码:#include <cstdio>#include <cstring>#include <iostream>using namespace s...原创 2018-02-27 12:08:28 · 135 阅读 · 0 评论 -
数论GCD·无限循环小数转分数
根据如上定理,我们便可以解决这道题了:AC代码:#include <map>#include <set>#include <stack>#include <cmath>#include <queue>#include <bitset>#include <string>#include <原创 2018-03-19 16:03:28 · 538 阅读 · 0 评论 -
数论·GCD---POJ 3421-X-factor Chains
题目大意:题意一开始做的时候有点模糊,首先明确是要对X求一个数列,满足前一个小于后一个,且前一个能被后一个整除,寻求最长数列的长度,这个我们可以通过素因子来排查,对于x的素因子,只要少一个就可以满足前一个小于后一个且能被整除的关系,所以我们如果知道了素因子的个数和,那么最长链的长度也就知道了。但是还有一问,就是,问有多少个,这个我就没太看懂题目的意思,我以为是这种长度且满足条件的链有多少个,想来想...原创 2018-03-19 17:32:21 · 139 阅读 · 0 评论 -
数论·素筛·POJ 3292·Semi-prime H-numbers
题目大意:给定一个H-number,问有多少H-semi-primes:定义一种数叫H-numbers,它是所有能除以四余一的数。在H-numbers中分三种数:1、H-primes,这种数只能被1和它本身整除,不能被其他的H-number整除,例如9是一个H-number,能被1,3,9整除,但3不是H-number,所以他是H-primes。2、H-semi-primes是由两个H-prime...原创 2018-03-19 17:51:08 · 160 阅读 · 0 评论 -
弹性碰撞·POJ-3684-Physics Experiment
题目大意:n个小球在一圆筒内每隔一秒垂直下落,问t秒后n个小球的位置。解题思路:如果只有一个小球,那么t时间小球的位置很好确定。但是如果多个,像以前Ants那道题一样就算碰触也不算他反弹,直接视作继续前进,但是这里有个问题就是小球是有半径的,就算是一起释放上方小球也要多上2*r,所以除却第一个小球,其余小球都比下一个多2*r,但是因为我们是要按照编号来输出,我们按照ants的做法得不到对应编号的小...原创 2018-03-20 08:38:49 · 308 阅读 · 0 评论 -
枚举因子·SGU - 499 ·Greatest Greatest Common Divisor
题目大意:给定n个数,求任意两个数的GCD,有很多对,问最大值。解题思路:数据量太大不能枚举,我们可以选择枚举因子,这感觉就像这种题的套路,只要枚举的这个因子是某两个或以上的数的公因子,就记录,记录到最后就是最大值,这样的复杂度就是O(nlogn);AC代码:#include <map>#include <set>#include <stack>#incl...原创 2018-03-29 17:30:50 · 384 阅读 · 0 评论 -
容斥原理·Gym101350G·Snake Rana
题目大意:n*m的矩阵问不包含炸弹的子矩阵总数;解题思路:奇加偶减容斥。AC代码:#include <iostream>#include <cmath>#include<cstdio>#include <algorithm>#include <map>using namespace std;typedef long lon...原创 2018-04-11 19:54:33 · 295 阅读 · 0 评论 -
找规律·Number Game ZOJ - 3346
题目大意:A和B做游戏规则是:首先给定了N0,A选择一个数a(N0≤a≤N0^2),B选择一个数b,保证a/b 是一个素数的正数次幂。下一次游戏,将b作为N0,继续;若A能选到1990,则A赢,若B能选到1则B赢。A,B走的都是最优策略,给定N0问谁能赢 解题思路:说实话,完全不想写找规律的题,这题找了一个多小时。。。就算是找规律也是博弈,找到必胜点就行,假若我们想A必胜:1、N0 = 45~19...原创 2018-03-29 17:05:05 · 194 阅读 · 0 评论 -
POJ - 2417 · Discrete Logging
BSGS模板题:#include <iostream>#include <cstring>#include <string>#include <map>#include <cmath>#include <cstdio>using namespace std;typedef long long ll;ll b,...原创 2018-05-02 23:06:57 · 108 阅读 · 0 评论 -
LUCAS`````````How Many Sets II ZOJ - 3557
LUCAS模板:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <stack>using namespace std;typedef long long ll;...原创 2018-04-21 22:35:15 · 128 阅读 · 0 评论 -
欧拉降幂+指数循环节· FZU - 1759 ·Super A^B mod C
题目大意:A^B mod C。。B很大!!!~解题思路:欧拉定理的完美应用:ab≡⎧⎩⎨⎪⎪ab%ϕ(p) gcd(a,p)=1ab gcd(a,p)≠1,b<ϕ(p)ab%ϕ(p)+ϕ(p) gcd(a,p)≠1,b≥ϕ(p) (mod p)证明转载自http://blog.csdn.net/synapse7/arti...原创 2018-04-26 15:31:11 · 193 阅读 · 0 评论 -
威尔逊携手费马、欧拉给您拜年!
出处:http://blog.csdn.net/synapse7/article/details/19610361一、威尔逊定理若p为质数,则p|(p-1)!+1亦:(p-1)! ≡ p-1 ≡ -1(mod p)例题:HDU 2973 YAPTCHA (威尔逊定理及其逆定理)解题报告见http://blog.csdn.net/synapse7/article/details/18728157二、...转载 2018-04-26 15:46:31 · 182 阅读 · 0 评论 -
GCD·POJ-2429 GCD&LCM Inverse
题目大意:给定gcd和lcm,求满足gcd和lcm的和最小的两个数:解题思路:我直接上的大数,用C++写的话,需要用到一个Rabin-Miller素数测试,这个暂时还没看,日后再作补充;AC代码:import java.util.Scanner; import java.math.*; public class Main{ public static void main(...原创 2018-03-19 15:19:57 · 318 阅读 · 0 评论 -
数学·Euler函数·证明及其求法
欧拉函数是求解n以内和n互质的数的个数的函数。性质1· Euler(mn) = Euler(m) * Euler(n);性质2· Euler(m^n) = m^n - m^(n-1) = m^n * (1 - 1/m);性质3· n = p1^k1 * p2^k2 * p3^ k3 ........;综上可知:Euler(n)= Euler(p1^k1 * p2^k2 * p3.....); ...原创 2018-02-26 00:11:32 · 1349 阅读 · 0 评论 -
数学·ACM中的数学小点(不间断更新)
1、积性:若m,n互质,则φ(mn)=φ(m)φ(n).φ()是欧拉函数.若m,n为任意整数,仍满足以上等式,则为完全积性函数。欧拉函数是积性函数,但不是完全积性函数2、法里序列(Farey):Farey数列Fn对于每个n( n>=2 ),如果0<a<b<=n 且 ab互质即a/b为不可约有理数,那么就在Fn集合中且以递增序列排序。F2 ={1/2} F3 = {1/3, ...原创 2018-02-25 23:59:03 · 278 阅读 · 0 评论 -
数学·解码问题·UVA1262 PassWord
题意:给定两表(6行5列),只有同列中同时存在的的字母才可作为密码,现在要求求解按字典序排序第n个密码。解题思路:先找出可作为密码的字母,其个数分别为a,b,c,d,e,并计算总的种类数。第一个字母若为A,则n应小于b*c*d*e;若为B,则n应大于b*c*d*e小于2*b*c*d*e;....由此可以推出余下的四个字母。坑点:我做题的时候完完全全没注意到重复性,若同列中有两个C,那么可选密码的个...原创 2018-02-27 17:08:43 · 182 阅读 · 0 评论 -
数学·期望·UVA-12230·Crossing Rivers
题意:解题思路:主要涉及一个期望问题,过河时间区间为l/v~3l/v,那么期望是2l/v;因为是均匀分布,所以概率密度函数是1/端点值之差,即1/(2l/v);再从l/v~3l/v积分,得到2l/v;走陆地的时间是D-sum(L);代码:#include <cstdio>int main(){ int n; double D; int ca = 1; ...原创 2018-02-28 21:45:22 · 157 阅读 · 0 评论 -
线性规划·UVA-11971·Polygon
题意:长为n的木条分为k+1条,求能组成多边形的概率;解题思路:我们可以求不能的概率用1减掉即为答案;我们可以将木条假设为一个圆,则选择k+1个位置分成k+1条边。不能组成多边形,那么就是有一条边的长度超过了半个圆,其他点在另一半边的概率为(1/2)^k。而这种点的选择(即分成的边)有k+1种。所以结果为1-(k+1)/(2^k);代码:#include <iostream>#inc...原创 2018-02-28 22:43:07 · 212 阅读 · 0 评论 -
唯一分解定理·UVA 10892·LCM的个数
题目大意:给定整数n(n ≤2000000000),求有多少对(a, b) (a≤b)满足LCM(a, b) = n;解题思路:这种题不用唯一分解定理也不知道该从什么地方下手,我们应该已经知道根据唯一分解定理:a = p1^k1*p2^k2*p3^k3.......;b = q1^l1*q2^l2*q3^l3.......;如果LCM(a, b ) = n的话,那么一定能够有:n = m1^r1...原创 2018-03-10 08:10:06 · 351 阅读 · 0 评论 -
素筛优化·UVA 11752·超级幂
题目大意:超级幂:是至少两个数的幂;输出1~2^64-1 的所有超级幂;解题思路:首先想到肯定是用素数来筛选,但是不可能用素数来筛选可行解,比如:素数2,枚举2的幂,在进行比较,绝对超时;那我们只能将素数用于幂的选择上也就是素数不选;但这样仍然过不了,会越界;这里可以使用两种优化边界处理方式:1、我自己是定义了一个中间变量ans,幂次循环枚举的时候,判断ans是否大于INF/i,i是当前的底数;可...原创 2018-03-10 09:51:33 · 411 阅读 · 0 评论 -
排列组合·UVA 11076·排列之和
题目大意:给定n个数字求解n个数字的排列组合的和;解题思路:首先要知道一个定理:若要求不重复序列的排列组合种类数目:含重复数字时能构成的所有不重复排列的个数为:(n!)/((n1!)*(n2!)*...*(nn!)),其中ni指数字i出现的次数。将这个次数记为S以样例 1 2 3 为例子:1 2 3 1 3 22 1 32 3 13 1 23 2 1抛开同一位上的重复数字不谈,这些数字加在一起得到...原创 2018-03-10 10:57:07 · 551 阅读 · 0 评论 -
EXGCD扩展欧几里得模板·UVA10673·Play with Floor and Ceil
纯粹的EXGCD,借机复习一波扩欧;void exgcd(ll a, ll b, ll &d, ll &x, ll &y) { if(!b){ x = 1; y = 0; d = a; } else { gcd(b, a%b, d, y, x); y -= x * (a...原创 2018-03-10 17:24:05 · 204 阅读 · 0 评论 -
(乘法)逆元证明·求解·模板
复习之路:关于逆元,我们首先知道一个叫做“完全剩余系”的东西,记为Zn,即mod n剩下的数;还有一个叫做 “缩系”的东西,就是Zn中与n互质的元素,记为Zn*;那么在Zn中,若ab = 1 ,那么a的逆就是b,b的逆就是a,类似于倒数,只不过这些都是mod n剩下的;而要说的乘法逆元的定义就如上所示。我们要求乘法逆元有两种方式,首先介绍三个定理:1、之前讲到的乘法逆元,即ax = 1 (mod ...原创 2018-03-11 09:43:13 · 1999 阅读 · 0 评论 -
数论·线性模方程·中国剩余定理详解
之前的博客介绍了求解二元一次方程的方法-----扩展欧几里得那如果要求解二元一次方程组的话,我们不可能每个进行一次EXGCD,取同解;中国剩余定理就完美解决了这一问题;中国剩余定理大致为:若某数x分别被m1、、…、mn除得的余数为a1、a2、…、an,则可表示为下式:x=R1a1+R2a2+…+Rnan其中R1是d2、d3、…、dn的公倍数,而且被d1除,余数为1;(称为R1相对于d1的数论倒数)...原创 2018-03-11 12:01:13 · 278 阅读 · 0 评论 -
递推·UVA-12627·奇怪的气球膨胀
题目大意:给你k,a,b,求k小时后,a~b行的红气球总数。解题思路:求解递推式即可,只不过注意一个优先级问题,+,-符号优先级高于<<,>>两个符号,所以不能1-1<<k这种操作;AC代码:#include<bits/stdc++.h>#include <iostream>#include <cstring>#incl...原创 2018-03-04 17:31:00 · 160 阅读 · 0 评论 -
数学·Exgcd·UVA12169 Disgruntled Judge
重点在推式子,实际是个扩展欧几里得。题目中给我们T,x1, x3, x5, x7......奇数项,让我们根据Xi = (a*Xi-1 +b) % 10001求出偶数项但是,问题是a和b都不知道,我们可以通过枚举a(0~10001),来求解b。方法是:有X2 = (a *X1 +b)%10001;X3 = (a *X2 + b) % 10001;可以得出X3 = (a*a*X1 + (a+1)*b...原创 2018-02-25 23:29:26 · 108 阅读 · 0 评论 -
费马小定理·欧拉降幂·矩阵快速幂·M斐波那契数列 HDU - 4549
解题思路:由于n太大需要考虑降幂,利用扩展欧拉定理可以得出a^(p%phi)%mod = a^p%mod,因此我们只需要计算p%phi即可。讲明两个坑点吧:1、做了很多矩阵快速幂,做吐了之后忽视了矩阵的转移方式,应该是1,0作为矩阵的初始状态而不是0,1.写出来的话应该不是有这种错误的。2、再一个是费马小定理推导扩展欧拉的时候是有一个取模phi,这个phi是mod的欧拉函数,因为是素数可以使用费马...原创 2018-04-26 22:19:06 · 390 阅读 · 0 评论