数学
文章平均质量分 53
NOTTME
这个作者很懒,什么都没留下…
展开
-
Ural1042(高斯消元+枚举自由变元)
写的有点渣渣太长了。#include #include #include #include #include #include using namespace std;#define MAXN 255int equ,var;int a[MAXN][MAXN];int x[MAXN];int free_x[MAXN];int free_num;int hash[MA原创 2014-03-05 20:29:27 · 748 阅读 · 0 评论 -
求矩阵行列式
double det() { for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) if (A[i][j] != 0) { for (int k = j + 1; k < n; k++) A[i][k] -= (A[j][k] * A[i][j] / A[j][j]); A[i][j] = 0;原创 2015-02-02 15:16:56 · 735 阅读 · 0 评论 -
扩展欧几里得
http://acm.hnu.cn/online/?action=problem&type=show&id=12831&courseid=268#include #include #include using namespace std;long long extend_gcd(long long a,long long b,long long &x,long long &y)原创 2015-01-29 16:55:50 · 389 阅读 · 0 评论 -
HDU1757(矩阵快速幂)
#include #include #include #include #include #include #include #include using namespace std;int a[10];int kk,m;__int64 matrix[10][10];__int64 ans[10][10];void matrixmul1(){ int i,j,k;原创 2014-04-05 23:22:36 · 575 阅读 · 0 评论 -
筛法求素数
void pri(){ memset(prime,true,sizeof(prime)); for (int i=2;i<=sqrt(max);i++) if (prime[i]) for (int j=i<<1;j<=max;j+=i) prime[j]=false; for (int i=2;i<原创 2013-12-06 10:06:21 · 606 阅读 · 0 评论 -
表达式求值
自己写的乱七八糟的代码。。#include #include #include #include #include using namespace std;int toint(const char* str,int length){ int i=0; int ans=0; int s; for (i=0;i<=length-1;i++) { s原创 2013-06-23 09:04:31 · 482 阅读 · 0 评论 -
蒙哥马利幂模运算
蒙哥马利幂模运算简介蒙哥马利(Montgomery)幂模运算是快速计算a^b%k的一种算法,是RSA加密算法的核心之一。特点及原理蒙哥马利模乘的优点在于减少了取模的次数(在大数的条件下)以及简化了除法的复杂度(在2的k次幂的进制下除法仅需要进行左移操作)。模幂运算是RSA 的核心算法,最直接地决定了RSA 算法的性能。针对快速模幂运算这一课题,西方现代数学家提出了大量的解决方案转载 2013-04-20 17:21:15 · 1969 阅读 · 0 评论 -
求组合数
long long int com(long long int m,long long int n){ long long int i,sum=1; for (i=1;i<=n;i++) { sum=(sum*(m-n+i))/i; } return sum;}原创 2013-09-28 19:05:35 · 551 阅读 · 0 评论 -
POJ2478 && Sicily1089(欧拉函数)
一直Runtime Error,最后把phi和f的声明放到main函数外面就行了,不懂。。#include #include using namespace std;int phi[1000010];long long f[1000010];int main(){ int i,j; for (i=1;i<=1000010;i++) phi[i]原创 2013-11-13 13:20:01 · 742 阅读 · 0 评论 -
Sicily1211(矩阵相乘)
邻接矩阵相乘n次后得到矩阵A,A[i][j]表示从i出发恰好走过n条边到达j的情况数。#include #include using namespace std;int main(){ int n,m,L; scanf("%d%d%d",&n,&m,&L); int i,j; int A[101][101]={{0}}; int a,b;原创 2013-11-14 20:06:27 · 720 阅读 · 0 评论 -
n对括号的匹配方式(卡特兰数)
4对括号有多少种可能的合法匹配方式?n对括号呢?此题是卡特兰数的一个通常应用,相似的还有出栈顺序等。关于卡特兰数的具体内容,请参阅百度百科或Wiki.http://baike.baidu.com/view/2499752.htm 网络上可以搜到很多相关的题目和解答,但是鲜有易懂的推导过程。这里记录一种推导过程如下: 结论:对于n对括号,合法的排列共有C(n,2n) -转载 2013-11-23 22:53:05 · 5251 阅读 · 2 评论 -
POJ1830(异或方程组的高斯消元)
对于式子(((A^B)^B)^B)……,即A对B进行连续异或时,可以发现有如下规律:若B为1,式子的值会在每次异或之后取反,因为0^1=1,1^1=0,……若B为0,式子的值会保持A值不变,因为0^0=0,1^0=1,……因而这种性质可以利用在POJ1830这样的有关联的开关问题上:(每个开关只能改变一次)假设开关1和开关2、3相关联,且开关1的初始状态为0,终态为1,。用1表原创 2013-12-16 01:12:36 · 1960 阅读 · 0 评论 -
求最大公倍数和最小公约数
int gcd(int a, int b) { if(a % b == 0) return b; else return gcd(b, a % b); } int lcm(int a, int b) { return a / gcd(a, b) *b; }原创 2014-02-10 15:59:18 · 616 阅读 · 0 评论 -
大数相乘
#include using namespace std;void reverse(char *str){ int length=strlen(str); for (int i=0;i<length/2;i++) { int t=str[i]; str[i]=str[length-1-i]; str[length-1-i]=t; }}int main(){ i原创 2015-01-20 20:50:18 · 436 阅读 · 0 评论