快速幂
克莉丝汀娜
此时一名自称平民的玩家路过
展开
-
hdu 5187 zhx and contest(快速幂、快速乘法)
问题描述作为史上最强的刷子之一,zhx的老师让他给学弟(mei)们出n道题。zhx认为第i道题的难度就是i。他想要让这些题目排列起来很漂亮。zhx认为一个漂亮的序列{ai}下列两个条件均需满足。1:a1..ai是单调递减或者单调递增的。2:ai..an是单调递减或者单调递增的。他想你告诉他有多少种排列是漂亮的。因为答案很大,所以只需要输出答案模p之后的值。输入描述原创 2015-03-14 22:29:21 · 468 阅读 · 0 评论 -
514E (矩阵快速幂+DP)
一棵树,每个结点有n个儿子,该第i个儿子到父节点的距离为d[i],问离根节点距离不超过x的结点有多少个,结果对1e9+7取模。之前写的了,忘记是参考哪个大牛的博客了:以下是他的分析 首先注意到每个di * 用dp[i]表示到根节点长度为i的点的个数, 那么不难发现状态转移方程 * dp[x] = dp[x - 1]*t[1] + dp[x - 2]*t[2] + ... +原创 2015-03-26 10:27:09 · 437 阅读 · 0 评论 -
hdu 5171(矩阵快速幂)
一个序列a,k次操作,每次把其中两个数的和相加后得到的新数添加到序列中,问最后得到的序列的和的最大值。 设最大的两个数为a[n],a[n-1],所有数的和为s[n],可得转移矩阵:(a[n],a[n-1],s[n])=(a[n-1],a[n-2],s[n-1])*(1 1 1)原创 2015-03-26 10:33:08 · 472 阅读 · 0 评论 -
520C DNA Alignment (快速幂)
看题传送门题目大意:给一个含有字母A、C、G、T,长度为n的字符串s,问有多少个长度与之相等的字符串t,使得p(s,t)=max(p(s,u)),u为任意与s长度相等的串。题中p(s,t)的定义说的很复杂,说白了其实p(s,t)就等于s中A的个数*t中A的个数+s中C的个数*t中C的个数+……要使p(s,t)最大,求出s中出现最多的字母个数,然后让该字母组成t可使得上式最大。若原创 2015-03-14 15:34:38 · 468 阅读 · 0 评论 -
SGU 117 Counting
n个数,求其M次幂能够被k整除的数的个数。(n,k,m快速幂求解即可。或者可以将k和那n个数都分解质因数。如果某个数的所有质因数的个数都不小于k的相应的质因数个数,则该数可被k整除#include#includeusing namespace std;#define LL __int64int pow(int a,int b,int k){ int ans=1;原创 2015-03-24 19:04:30 · 421 阅读 · 0 评论 -
快速幂或矩阵快速幂
原文链接快速幂或者矩阵快速幂在算大指数次方时是很高效的,他的基本原理是二进制,下面的A可以是一个数也可以是一个矩阵(本文特指方阵),若是数就是快速幂算法,若是矩阵就是矩阵快速幂算法,用c++只需把矩阵设成一个类就可以,然后重载一下乘法就可以,注意为矩阵时则ANS=1,应该是ANS=E,E是单位矩阵,即主对角线是1其余的部分都是0的特殊方阵了。 举个例子若你要算A^7你会怎么转载 2015-04-18 16:27:39 · 424 阅读 · 0 评论 -
骨牌覆盖问题三(k*N棋盘覆盖)
骨牌覆盖问题一 骨牌覆盖问题二 骨牌覆盖问题三#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<cmath>#include<set>#include<queue>#include<stack>#include<map>using namespace std;#defi原创 2015-10-11 11:25:58 · 1608 阅读 · 0 评论