
数论
文章平均质量分 72
qian99
这个作者很懒,什么都没留下…
展开
-
hdu 4790 Just Random
题意:给出两个区间[a,b]和[c,d],分别从这两个区间等概率的抽两个整数x,y,求(x+y)%p=m的概率。思路:总的组合数很容易算出来,也就是两个区间的整数的个数的乘积。接下来是求两个数的和,在区间原创 2013-11-17 13:53:27 · 1169 阅读 · 0 评论 -
POJ 3696 The Luckiest number(欧拉函数)
题意:给出一个数L,现在要求一个数A,使得L|A,并且A的每一位都是8,问A的最少位数是多少。思路:首先要把A转化一下,把A表示成,则(p是一个整数),令,那么就存在一个整数k使得,因此,就是求。同余方程有解的条件是(10,m)=1,简单证明:若(10,m)的素因子为2 or 5,但是和10互质,因此没有2、5的素因子,即方程无解。通过欧拉公式可以知道,原创 2014-03-14 11:54:13 · 963 阅读 · 0 评论 -
POJ 3696 The Luckiest number(欧拉函数)
题意:给出一个数L,现在要求一个数A,使得L|A,并且A的每一位都是8,问A的最少位数是多少。思路:代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define Inf 0原创 2014-03-14 11:58:51 · 1293 阅读 · 0 评论 -
poj 1091 跳蚤(分解质因数+容斥)
首先满足要求的解要满足gcd(a1,a2,a3……an,M)=1,也就是求n个小于等于M的数与M的最大公约数的结果为1的组合的个数。找出M的所有质因子,通过容斥原理计算组合总数,所有的组合数为M^N,现在要减去所有组合的结果与M求最大公约数不为1的个数,这样的组合数必须N个数只要含有M的一个质因子,枚举质因子的组合情况,利用容斥原理,奇数个质因子减去,偶数个质因子加上。。。就能得到结果了。还有一点原创 2014-03-07 20:31:10 · 858 阅读 · 0 评论 -
poj 1320 Street Numbers(解pell方程)
题意:求满足1+2+3+……+(n-1)=(n+1)+(n+2)+……+m的前10项n和m。思路:把公式化简一下,n(n-1)/2=(m-n)(m+n+1)/2,然后可以求出2n^2=m^2+m,给m配方可以得到(2m+1)^2-8n^2=1。设x=2m+1,y=n,这样就变成了x^2-dy^2=1的形式,显然这是个pell 方程。利用迭代公式就可以求解了:Xn=Xn-1 * X1 +dY原创 2014-03-08 15:52:46 · 867 阅读 · 0 评论 -
POJ 2480 Longge's problem (欧拉函数)
题意:求Σgcd(i,N)。思路:若gcd(A,N)=i,那么gcd(A/i,N/i)=1,因此,对于N的每一个因子,sum+=φ(N/i)*i。代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3原创 2014-03-15 16:18:32 · 1104 阅读 · 0 评论 -
UVA 11768 Lattice Point or Not(扩展欧几里得)
题意:给出两个点,求两个点之间的线段之间的整数点的个数。思路:这题跟SGU的一个题差不多,就是利用扩展欧几里得来寻找整数点,只不过这个点是小数,刚开始想的麻烦了,搞的都快傻了、、、、细节的地方感觉不是很好写,uva太坑了,Judging Error 了一下午。代码:#include#include#include#include#include#include#includ原创 2014-03-16 19:00:36 · 969 阅读 · 0 评论 -
HDU 2865 Birthday Toy(Polya+矩阵乘法+dp)
题意:要构成一个长度为n原创 2014-04-16 19:10:39 · 874 阅读 · 0 评论 -
poj 2154 Color(欧拉函数+Polya)
题意:原创 2014-04-15 22:13:43 · 793 阅读 · 0 评论 -
hdu 1695 GCD(容斥原理+欧拉函数)
题意:在[1,c]和[1,d]中分别选两个数x,y,求gcd(x,y)==k的数的对数,其中(x,y)与(y,x)为同一种方案。思路:假设c代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f原创 2014-04-01 15:55:53 · 696 阅读 · 0 评论 -
hdu 2588 GCD(欧拉函数)
题意:求[1,N]中与N的最大公约数大于等于M的数的个数。思路:直接算肯定是不行的。可以枚举下N的因子,那么将在区间[M,N]中的因子X,求所有N/X的欧拉函数的和即为所求。代码:#include#include#include#include#include#include#include#include#include#include#include#defi原创 2014-04-01 17:34:46 · 727 阅读 · 0 评论 -
FZU 1669 Right-angled Triangle(毕达哥拉斯三元组)
题意:求a,b,c,满足a^2+b^2=c^2并且a+b+c思路:本原毕达哥拉斯三元组满足: x=m^2-n^2 y=2mn z=m^2+n^2 其中x^2+y^2=z^2,m和n互素(m>n),并且n和m奇偶性不同,gcd(x,y,z)=1。知道了这些,只要枚举n和m,每次得到一个本原毕达哥拉斯三元组原创 2014-03-08 13:30:42 · 996 阅读 · 0 评论 -
poj 3243 Clever Y(离散对数-高次同余方程)
题意:求解x,满足A^x=B(mod C)思路:数论太难学……勉强看懂了 AekdyCoin的博文:http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4 代码也基本是照着写的Orz……代码:#include#include#include#include#include#i原创 2014-03-07 14:05:05 · 909 阅读 · 0 评论 -
CF 359C Prime Number(数论)
题意:给出n个数,和一个质数x,令sum=Σai,求s=Σ(x^(sum-ai))和t=x^sum的最大公约数。思路:在网上看题解推了一大篇公式……顿时感到无力,最后只能用模拟提取公因式的方式过了。由于x是一个质数,因此这两个数的最大公约数一定是x^k的形式,只要求出k,那么就可以用快速幂求解了。如何求k呢?分母直接就给出了,对于分子来说,先把他们排序,然后提取最小的因子,此时会有一些数字提取原创 2013-11-06 14:41:44 · 1107 阅读 · 0 评论 -
SGU 141 Jumping Joe(扩展欧几里得)
题意:一只青蛙在坐标轴的原点,它每次可以向左或向右跳x1或x2的距离,现在,它想跳K次恰好跳到P点,求一个跳的方案,P1为向右跳x1的次数,N1为向左跳x1的次数,P2为向右条x2的次数,P3为向左跳x2的次数。思路:唉,对数论什么的一直没感觉啊,做了半天好不容易做出来了……首先是求一个可行解,这个简单,相当于解ax+by=c的方程,直接用扩展欧几里得就可以搞定,这里求出的x和y分别相当于P1原创 2014-01-14 18:09:19 · 1028 阅读 · 0 评论 -
poj 2891 Strange Way to Express Integers(扩展欧几里得,中国剩余定理)
题意:给出x%a1,x%a2……x%ak的余数r1,r2,r3……rk,求满足要求的最小的x的值。思路:首先,满足第一个的最小解x1=r1,我们不妨先假设解为x=r1,对于第二个方程 x%a2=r2,为了让x满足第一个式子,那么x要满足x=x+a1*k,因此x+a1*k=a2*y+r2,然后用扩展欧几里得算法可以求得k的值,但此时k有可能为负,因此要取模……这样一直推下去,对于第i个式子,x要原创 2014-02-06 22:05:47 · 719 阅读 · 0 评论 -
poj 1061 青蛙的约会(扩展欧几里得)
中文题就不说题意了吧……最近打算学学数论,数学相关的真是一点都不会啊Orz,首先是一发基础的……这题以前做过,但是当时做得稀里糊涂的,连扩展欧几里得还不太明白就瞎搞搞过了,今天又做了一遍,把公式神马的都重推了一遍,感觉不错,唉,以后做题要注意了,不能没搞懂就过去了。。。。 设两只青蛙一共跳了t次,那么就可以得到一个方程:(a+mt)-(b+nt)=kL (k=0,1,2,原创 2014-02-06 19:41:24 · 730 阅读 · 0 评论 -
poj 2115 C Looooops(扩展欧几里得)
也是比较基础的吧,根据题意可以列出式子:Cx+2^k * y=B-A,x为要循环的次数,用扩展欧几里得求解即可。代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define原创 2014-02-07 10:41:20 · 660 阅读 · 0 评论 -
poj 2142 The Balance(扩展欧几里得)
题意:给出两种质量的砝码,和一份药品,问要多少砝码能称出物品,砝码的个数满足两种砝码的数量和尽量小,如果还有多解满足两种砝码的总质量最少。思路:比较简单的扩展欧几里得。很容易列出方程ax+by=d,扩展欧几里得直接求解~但是此时求出的只是一组可行解,我们要对其进行调整,我们知道若x和y是方程的解,那么x+kb,y-ka也是方程的解,k是整数。根据这个去调整解,获得一个最优的就行了。原创 2014-02-06 20:13:51 · 699 阅读 · 0 评论 -
UVA 11773 King's Wish(数论)
题意:用长L,宽W的长方形瓷砖覆盖K×K的地面,要求: ①LW ②完全覆盖,不能有重叠 ③几个长方形不能拼成一个小于K的正方形 ④L-W尽量大思路:用几个长方形拼成一个最小的正方形的边长为LCM(L,W),因此,只要满足LCM(L,W)==K就可以满足要求。接下来是要让L-W尽量大……这个没原创 2014-02-17 00:20:39 · 801 阅读 · 0 评论 -
UVA 11916 Emoogle Grid(离散对数)
这题写的略恶心,写完以后各种小bug。。。但是是一个好题~~先填满m行,m为不能涂的x的最大值。然后再填一行,然后以后每加一行就会乘(K-1)^N,转化为高次同余方程,就能解了,由于这题mod为素数,所以做起来简单很多。。。代码:#include#include#include#include#include#include#include#include#incl原创 2014-03-11 11:32:34 · 746 阅读 · 0 评论 -
hdu 1573 X问题(中国剩余定理)
思路:利用中国剩余定理求解同余方程,需要注意要求最小正整数解,因此如果解为0,那么总数要减1。感觉数论写起来挺简单的,但是理解起来好难。。。代码:#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#defin原创 2014-03-06 17:21:46 · 656 阅读 · 0 评论 -
UVA 11490 Just Another Problem
题意:S个士兵排成r行c列,其中队列中间有两个方队是空出来的,并且这两个方队大小相等,而且方队到四个方向外面的厚度都相同,求所有空出来的方队的情况。思路:在纸上画一画就可以发现S可以写成这样的形式S=6*i*i+7*i*j。这样枚举i就行了。代码:#include#include#include#include#include#include#include原创 2014-03-11 17:18:11 · 683 阅读 · 0 评论 -
hdu 5042 GCD pair(数论 + 二分)
题意:给出n个数,定义F(l,r)为区间[l,r]的最大公约数,原创 2014-09-28 14:44:36 · 1997 阅读 · 0 评论