数论
loadinglpx
菜鸟一只
展开
-
扩展欧几里得
扩展欧几里得实现的是给定a,b,能求出x,y使得ax+by=gcd(a,b)。其应用一般有三个:1.扩展欧几里得求逆元:假定gcd=1,那么如果ax+by=1的话,ax = 1(mod b),那么扩展欧几里得求出的x就是所需要的乘法逆元。2.扩展欧几里得求解不定方程:若要求ax+by=c的解x、y,如果c=gcd(a,b)*k(k为整数),那么该二元一次方程有解,否则无实数解。3.扩展原创 2015-07-21 10:02:05 · 468 阅读 · 0 评论 -
bc第八场Reading comprehension(快速幂,数模公式)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4990题意:给定一个代码,用其他时间复杂度小的方法来实现这个代码功能思路:打表发现有一定的规律,奇数位是一个类等比数列,或者可以换成前n项等比数列求和的形式,然后得到一个通项公式,或者求和公式,容易发现需要用快速幂来求,或者矩阵快速幂(这个不会),同时需要处理取模的情况,最后的公式会有一个除以3原创 2015-08-04 10:06:37 · 572 阅读 · 0 评论 -
zoj 3336 Friend Number II(数论)
#数论第二练#题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86703#problem/D题意:定义一个friend numbers表示一组数各个数位之和相同,给你一个数,要求找到比他大的最小的friend number,比如23就是32,10就是100思路:最初想的时候,感觉只需要把最低两位一个减一,一个加一就好原创 2015-09-09 10:36:16 · 336 阅读 · 0 评论 -
codeforces 377B Modulo Sum(数学,dp)
题目链接:http://codeforces.com/contest/577/problem/B题意:给你n个数,从中随机取几个数,使得这几个数的和是m的倍数,如果存在这样一组数,输出yes,否则输出no思路:首先,当n>m时,肯定有符合条件的,由同余定理可以得到,将这前n项和对m取余的结果用一个数组表示,则因为n大于m,必然存在两个相等的数s1,和s2,则这两个数中间的那些数字之和就能整原创 2015-09-12 11:30:30 · 481 阅读 · 0 评论 -
zoj 1871 steps 题解(数学)
#数论第一练#题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86703#problem/A题意:给定两个数a,b,问最少执行多少步操作能从a变到b,操作是:每一步可以比前一个数字加一,或者不加,或者减一,必须保证第一步和最后一步都是加1或者减1。思路:基本是个找规律题,多写几组容易发现,存在两个临界点,一个是前n项原创 2015-09-08 10:37:04 · 451 阅读 · 0 评论 -
codeforces 320c A Problem about Polyline(数学)
题目连接:http://codeforces.com/contest/579/problem/C题意:给你一段波浪线,点数变化情况是—— (0,0)->(x,x)->(2x,0)->(3x,x),再给你一个点(a,b),让你输出尽可能小的x,使得(a,b)在这样的折线上。思路:两段折线的方程分别是a-2kx=b,2kx-a=b。对于第一个式子,k=(a-b)/(2x)代码:#inclu原创 2015-09-29 22:02:13 · 422 阅读 · 0 评论 -
codeforces #323 c GCD Table(map)
题目连接:http://codeforces.com/contest/583/problem/C题意:由n个数,可以构成n*n的gcd矩阵,无序的输入这n*n个数,然后让你找到这n个数,满足这个gcd矩阵思路:最大的数字肯定是满足条件的数,我们就选择最大的数,然后让这个数和前面取到的数,都会产生两个gcd,于是就在数列中把这两个gcd删去就好了。每两个数之间,一定会产生两个gcd的本题原创 2015-10-05 22:05:48 · 642 阅读 · 0 评论