快速幂
keyboarder_zsq
你所认为的极限,其实是别人的起点。
展开
-
矩阵快速幂,简单粗暴
快速幂数的快速幂;计算x^n,n=10000000递归算法intpow(int x,int n){ if(n==1) return x; else if(n%2==1) { return x*pow(x,n/2);原创 2016-02-24 08:37:45 · 598 阅读 · 0 评论 -
51nod1113【矩阵快速幂】
思路:裸的矩阵快速幂,读完题,感觉有点对不起四级算法题这一类。#includeusing namespace std;typedef long long LL;const LL mod=1e9+7;int n;struct asd{ LL a[102][102];};asd mul(asd x,asd y){ asd ans; memset(ans.a,0,size原创 2017-03-09 23:43:40 · 445 阅读 · 0 评论 -
51nod 1013【快速幂+逆元】
等比式子:Sn=(a1-an*q)/(1-q)n很大,搞一发快速幂,除法不适用于取膜,逆元一下(利用费马小定理) 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p)。刚好在本道题目一样适用,mod=1e9+7就是质数,那么gcd也就是=1,OK,那么b*k=1 这个逆元就等于 a^(mod-2);#include #include #include原创 2016-11-02 19:03:08 · 456 阅读 · 0 评论 -
lightoj 1096【矩阵快速幂(作为以后的模板)】
基础矩阵快速幂何必看题解#include using namespace std;/*0 1 2 3 4 5 6 70 0 0*/const int mod=10007;struct asd{ int num[4][4];};asd mul(asd a,asd b){ asd ans; memset(ans.num,0,sizeof(ans.n原创 2016-11-16 22:02:42 · 463 阅读 · 0 评论 -
HDU5950【矩阵快速幂】
主要还是i^4化成一个(i+1)^4没遇到过,还是很基础的一题矩阵快速幂;#include using namespace std;typedef long long LL;const LL mod=2147493647;const int N=1e5+10;struct asd{ LL num[8][8];};asd mul(asd a,asd b){原创 2016-10-31 22:03:39 · 520 阅读 · 0 评论 -
HDU2604【矩阵快速幂】
思路:把fm看成01,f-1,m-0;不能存在101,111;dp[i]代表第i结尾的方案数;①:结尾是0一定行:只要i-1序列里添个0就好了,dp[i]+=dp[i-1];②:结尾是1 如果***10或者***11的序列,加上1就不行; 那我扩大,01或者11,很明显s[n-3]==1就不行, 再扩大,/101/1原创 2016-11-05 22:40:38 · 400 阅读 · 0 评论 -
POJ3735【矩阵快速幂】
逛了一圈。。。觉得这篇讲的比较清楚:传送门~简要概括:1、线性代数的知识,单位矩阵的利用;(如果不知道单位矩阵的,先去补习一下线代,做几题行列式就会了);2、然后构造好矩阵以后,直接做M次乘积运算,然后利用一个[1, 0 , ... , 0 ]矩阵提取答案就好了,对,那个[1,0,..., 0 ] 就是获取答案的作用。PS以前的矩阵快速幂总是这样写的:先构造一个矩阵,然后跑一发原创 2016-10-09 21:31:21 · 533 阅读 · 0 评论 -
51nod1242【矩阵快速幂】
基础题。。 wa在n的范围需要用long long = =、涨个记性#include<bits/stdc++.h>using namespace std;typedef long long LL;const LL mod=1e9+9;struct asd{ LL a[2][2];};asd mul(asd x,asd y){ asd ans; for(int i原创 2016-09-19 15:44:22 · 612 阅读 · 0 评论 -
51nod1126【矩阵快速幂】
思路: 自己的一点心得:中间矩阵为最终矩阵。 搞出来很简单的;#include <bits/stdc++.h>using namespace std;const int N=1e2+10;const int mod=7;struct asd{ int num[3][3];};asd mul(asd a,asd b){ asd ans; memset(ans.nu原创 2016-09-05 23:24:31 · 460 阅读 · 0 评论 -
51nod 1004 【快速幂】
思路: 掐住最后一位,快速幂一发就好了#include<cstdio>#include <map>#include<iostream>#include<string.h>#include<algorithm>using namespace std;typedef __int64 LL;int cal(int g,int x){ int ans=1; while(g)原创 2016-08-31 23:44:12 · 458 阅读 · 0 评论 -
hdoj1575【矩阵快速幂】
题意:非常清晰!直接搞吧。#include <iostream>#include <stdio.h>#include <string.h>#include <stack>#include <queue>#include <map>#include <set>#include <vector>#include <math.h>#include <algorithm>using na原创 2016-07-05 20:11:33 · 545 阅读 · 0 评论 -
hdoj 1588 学好线代与数学
按部就班,超级简单,虽然不是一次过的。。。错在那个long long数据问题还是要注意。。也不知道要怎么注意;还是说题目吧。。。思路看main函数其他函数功能也是非常有用!代码比较丑。。。见谅#include #include #include #include #include #include#include #include #include转载 2016-02-24 20:02:18 · 107 阅读 · 0 评论 -
FZU 1911【矩阵快速幂】
题意: F(n)为斐波那契数列,S(n)为其前缀和,给你n,m,求S(n)%m的值作为矩阵边长,构造矩阵行和列的值都不相等 思路: = =、强行把两道题凑成一道题; 求斐波那契前缀和–矩阵快速幂;(具体构造矩阵看代码) 构造方法: 四个角放好,然后水平,竖直放... 具体看代码(懒得写…)#include<iostream>#include<cstdio>#include<cstr原创 2017-07-18 20:51:29 · 389 阅读 · 0 评论