
ACM-数学
文章平均质量分 73
「已注销」
这个作者很懒,什么都没留下…
展开
-
高斯消元法(Gauss Elimination) 分析 & 题解 & 模板
转载自:http://hi.baidu.com/czyuan_acm/blog/item/ebf41f8fdc0e1ee6f01f36e9.html高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。所以我们可以用初等行变换把增广矩阵转转载 2012-04-09 00:06:40 · 983 阅读 · 0 评论 -
FZU_1675 The Seventy-seven Problem
http://acm.fzu.edu.cn/problem.php?pid=1675题意:给你一个最多有1000000为的整数N,现在已知其中有连续的4位数字被破坏了而看不清楚了,已知的是这个整数能被77整除,求最大的满足条件的N。思路:整数N中有连续的4位被破坏,我们可以先把未知的位置的数都先用0补上,然后用试除法求出这个不完整N的余数,记为a;剩下的我们就可以去枚举那个原创 2012-05-22 23:27:47 · 508 阅读 · 0 评论 -
POJ_3358 Period of an Infinite Binary Expansion
http://poj.org/problem?id=3358题意:给你一个有理分数,要你求这个分数写成2进制小数时的最小循环节和最开始的位置思路:一开始以为可以直接暴力模拟搞,因为没有给p、q的范围,写了一个暴力的代码,一交RE了,更了几次还是RE,说明算法不对。 后来就直接用数论的方法去做了,具体的思路是这样的:假设分数为p/q,先p/=gcd(p,q) ,q/=gcd(原创 2012-05-23 16:13:41 · 1062 阅读 · 0 评论 -
POJ_3243 Clever Y babystep
http://poj.org/problem?id=3243题意:和上一题一样,还是求A^x = B( mod C )的最小x值,但是这题和上题有个不同点就是这题的C没有限制条件,也就是说这题并没有规定C必须是质数。思路: 还是用 babystep_gaintstep算法求解。但是这题并不能用POJ_2417的算法,直接套该算法,下面简要说明一下不能用的原因。首先我原创 2012-05-24 10:21:52 · 1705 阅读 · 0 评论 -
HDU_4045 Machine scheduling 数学
http://acm.hdu.edu.cn/showproblem.php?pid=4045题意 :有N台机器,要从中选出r台来,这r台机器之间必须要满足两两之间的编号不小于k,选出r台机器之后,要把这r台机器分成不超过m组,问共有多少中满足条件的种数。思路:这是一个组合数学计数的问题,我们可以将原问题分成两个子问题来解决: Q1:从n个数中选出r个数,要求两两之间的编号差不小于k原创 2012-08-06 16:40:36 · 522 阅读 · 0 评论 -
HDU_3875 Euclidean Algorithm 数论
http://acm.hdu.edu.cn/showproblem.php?pid=3875题意:给一个n = p * q ,一个c ,问 ( sum{ lcm(i , n) } - sum{ gcd(i , n) } ) % c == 0 是否成立。思路: 这是一个数论的综合题,整整花了3个小时啊。我们还是把问题分开处理, 就是先处理ans1 = sum{ gc原创 2012-08-07 14:29:47 · 709 阅读 · 0 评论 -
SPOJ_4191 Sky Code
http://www.spoj.pl/problems/MSKYCODE/题意:有N个数,让你从中选出4个,使得它们的最大公约数为1 。N思路:用容斥原理来统计数。我们考虑问题的反面,就是先求出所有可能4个数的取法,然后减去4个数的最大公约数不为1的组合。#include#includetypedef long long LL ;const int MAXN = 10原创 2012-07-24 15:35:23 · 956 阅读 · 3 评论 -
FZU_1759 Super A^B mod C
http://acm.fzu.edu.cn/problem.php?pid=1759题意:求A^B % C的值,A,C 思路:要解本题需要知道下面的公式:A^B = A^(B % phi(C) + phi(C) ) ( mod C ) , B>=phi(C) 。有了上面的公式之后要解本题就简单了,先求出C的欧拉函数,然后比较B和phi(C)的大小,如果B>=phi(C) 直接用原创 2012-08-28 19:44:42 · 1952 阅读 · 0 评论 -
FZU_1017 Playing with Calculator
http://acm.fzu.edu.cn/problem.php?pid=1017题意:给你一个K,要你求一个n, k使得k个n组成的数正好能被K整除,要求首先考虑最小的n,然后考虑最短的k。思路:这个题和HDU_2462相似。首先我们可以这样考虑,对于一个由k个n组成的数字,我们不能直接去枚举n和k,那样显然会超时(因为有可能存在不存在n和k的情况),这样我们就设法去把这样的n原创 2012-08-30 09:23:17 · 587 阅读 · 0 评论 -
HDU_3910 Liang Guo Sha
http://acm.hdu.edu.cn/showproblem.php?pid=3910题意:这个题目看了网上的好多题意说明,感觉和我理解的都有一些小小的出入,也不知道是我理解错了还是没有理解他们的意思, 下面我就说下我的理解吧,首先我们假设Alice出1的概率是x,Bob出1的概率是y,我们用EA(x,y)表示Alice在两者出1的概率分别为x和y的期望得分,那么我们很容易可以推出下原创 2012-08-31 10:21:26 · 894 阅读 · 0 评论 -
POJ_2417 Discrete Logging 普通babystep_gaintstep
http://poj.org/problem?id=2417题意:求A^x = B( mod C )的最小x,其中C是一个质数。思路:用普通的babystep_gaint_step即可,具体的做法是这样的,我们把x写成下面这样的形式:x = i * m + j , 这样上式就可以变成:A^m^i * A^j = B( mod C ),其中m=ceil( sqrt(C) ),原创 2012-05-24 00:28:29 · 1491 阅读 · 2 评论 -
ZOJ_Function 3061
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3061题意:定义f(i)为i表示成3进制之后,从最高位开始找到的第一个2前面的数,如 142 = (12021)3, f(142) = (1)3 = 1.如果没有这样2则 f(i) = i。求f(1) + f(2) + f(n) 的值。 思路:因为n的值原创 2012-05-22 22:10:05 · 456 阅读 · 0 评论 -
SGU_106 The equation 同余方程
http://acm.sgu.ru/problem.php?contest=0&problem=106题意:给你一个 ax+by+c = 0的方程, 然后分别给你x、y的区间[x1 , x2] , [y1 , y2] 问你x、y都在给定区间内的解一共有多少组。思路:利用扩张欧几里得算法求出:ax + by = gcd(a ,b) = d 的一组解(x0 ,y0),则原方程有解的原创 2012-05-22 20:04:14 · 483 阅读 · 0 评论 -
POJ 1222 EXTENDED LIGHTS OUT 高斯消元
http://poj.org/problem?id=1222题意:给定一个5*6的0-1矩阵, 每个元素有一个值,是0或是1。press没个点的时候,其周围的4个点和中间的那个点的状态都将发生变化,即0->1 , 1->0。在保证有解的情况下求一种press ,使得所有的元素的状态都是0。思路:5*6的矩阵,一共30个元素,其实这题只要枚举第一行的press状态,接着往下推,就可以得出结果原创 2012-04-08 19:17:39 · 599 阅读 · 0 评论 -
hdu 3976 Electric resistance 高斯消元
http://acm.hdu.edu.cn/showproblem.php?pid=3976题意:给定有N个结点的电路图,编号为1-N,求1号和N号结点之间的等效电阻。思路:由基尔霍夫定理对每个结点列电流定理(用每个结点的电压),得到N个方程组和N个变量,求解方程组即可,因此就是高斯消元。代码:#include#include#include#includeconst do原创 2012-04-09 23:23:28 · 1262 阅读 · 0 评论 -
hdu 4200 Bad Wiring 高斯消元
http://acm.hdu.edu.cn/showproblem.php?pid=4200思路:经典的开关问题,高斯消元+枚举自由变量代码:/*高斯消元+枚举自由变量 */ #include#include#includeusing namespace std;int T , N ,M ;int num[110] ;int a[110][110] ;int row原创 2012-04-09 19:48:52 · 1015 阅读 · 0 评论 -
HDU_2540 遮挡判断
http://acm.hdu.edu.cn/showproblem.php?pid=2540题意:给你一排木板,有一束阳光从一边斜射过来,问有多少块木板没有被完全遮住。思路:一种思路是这样的,我们先对木板的位置进行排序(按照x的坐标),可以证明前i块木板的影子的最远距离是_max时,第i+1块木板的影子的距离是dis,如果dis > _max则说明第i+1块木板没有被完全遮原创 2012-05-30 23:52:43 · 607 阅读 · 0 评论 -
SGU_275 To xor or not to xor gauss
http://acm.sgu.ru/problem.php?contest=0&problem=275题意: 给你N个正整数,要求你从中选择若干个数,然后进行异或,求一个最后的最大异或值。N思路:异或是一种二进制的运算,所以我们先将给定的10进制数化为2进制,每个10进制数i,对应的二进制的第j位记为:g[i][j] , 这样我们就可以得到以下的一系列方程:g[0][0]*原创 2012-06-03 23:16:28 · 1213 阅读 · 0 评论 -
HDU_3949 XOR gauss
http://acm.hdu.edu.cn/showproblem.php?pid=3949题意:给你N个数,要你从中取出若干个进行异或运算,求最后所有可以得到的异或结果中的第k小的异或值。N思路:首先以位数为行,N和数为列,建一个矩阵,然后就对矩阵进行高斯消元,消元之后这N个数异或的结果就可以用一组线性基来表示了,该线性基的下标编号就是异或值的大小标号,因此本题就可以原创 2012-06-06 08:24:39 · 1049 阅读 · 0 评论 -
HDU_1573 X问题 中国剩余定理
http://acm.hdu.edu.cn/showproblem.php?pid=1573题意:给定一组同余方程组,和一个N,求方程组小于等于N的的解的个数。思路:中国剩余定理的运用,但是需要主要的是这里的mi不是两两互质的,因此不能直接用中国剩余定理,需要两个两个式子地进行求解,假设用两个式子: x = a1( mod m1 ) 和 x = a2 ( mod m2)原创 2012-05-21 20:05:11 · 696 阅读 · 0 评论 -
FZU_1607 Greedy division
http://acm.fzu.edu.cn/problem.php?pid=1607题意:给你一个N, 求N所有除了1之外的因数,并求一个最大的因数。N思路:首先我们将N进行因式分解,分解成质因数的乘积,记作:N = q1^a1 * q2^a2 * .. * qr^ar这样N的所有因数就可以表示为:res = (a1+1)*(a2+1)*....*(ar+1),当然还要减去1(原创 2012-05-21 22:00:16 · 435 阅读 · 0 评论 -
FZU_1753 Another Easy Problem
http://acm.fzu.edu.cn/problem.php?pid=1753题意:其实就是求N个组合数的最大公约数。思路:C(n , m) = n! / (n- m)! * m! ,因此求这些组合数的最大公约数, 我们只需要先将每个组合数进行因式分解,所有求出所有组合数的每个因子的最小值相乘即可。现在的问题就是如何高效地进行组合数的因式分解,对于n!的因式分解,我们原创 2012-05-21 23:41:22 · 829 阅读 · 1 评论 -
POJ_1845 Sumdiv
http://poj.org/problem?id=1845题意:求A^B的所有正约数的和模9901的结果。 A,B思路:先将A^B进行因式分解,其实只要对A进行因式分解即可,假设A的一个质因子为pi,次数为ci ,则A^B中pi的次数就是ci*B次。这样就可以得到下面的式子:A^B = (p1^c1 * p2^c2 * p3^c3 * .. * pn^cn )^B , 也原创 2012-05-22 20:52:14 · 581 阅读 · 0 评论 -
HDU_3609 Up-up
http://acm.hdu.edu.cn/showproblem.php?pid=3609题意:定义:a↑↑1 = a , a↑↑(k+1) = a (a↑↑k) 求 a↑↑k mod 100000000 .思路:A^x = A^( x % phi(C) + phi(C) ) ( mod C ) , x>= phi(C) ;代码: #include #incl原创 2012-08-28 23:49:44 · 680 阅读 · 0 评论