Partition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description Define f(n) as the number of ways to perform n in format of the sum of some positive integers. For instance, when n=4, we have  4=1+1+1+…
推公式+快速幂 公式有很多形式,可以写矩阵 1.前n-1项和的两倍+2的(n-2)次方,这个写不出啥 2.递推式:f(n)=2*f(n-1)+2的(n-3)次方 3.公式:2的(n-k-2)次方*(n-k+1)+2的(n-k-1) 代码什么的看他的吧http://blog.csdn.net/liuledidai/article/details/9449301 第一次写矩阵就不献丑了 #include<stdio.h> ; #define LL __int64 LL p[][]; LL q[][…
Partition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2362    Accepted Submission(s): 937 Problem Description Define f(n) as the number of ways to perform n in format of the sum of some posi…
HDU.2640 Queuing (矩阵快速幂) 题意分析 不妨令f为1,m为0,那么题目的意思为,求长度为n的01序列,求其中不含111或者101这样串的个数对M取模的值. 用F(n)表示串长为n的合法串的个数. 首先不难通过枚举发现F(0) = 0, F(1) =2, F(3) = 6, F(4) = 9, F(5) = 15.然后引用网上如何求解递推公式的详细解释: 用f(n)表示n个人满足条件的结果,那么如果最后一个人是m的话,那么前n-1个满足条件即可,就是f(n-1): 如果最后一个…
HDU 5667 构造矩阵快速幂 题目描述 解析 我们根据递推公式 设 则可得到Q的指数关系式 求Q构造矩阵 同时有公式 其中φ为欧拉函数,且当p为质数时有 代码 #include <cstdio> using namespace std; long long pow_mod(long long a, long long p, long long mod) { if (p == 0) return 1; long long ans = pow_mod(a, p / 2, mod); ans =…
Problem Description Queues and Priority Queues are data structures which are known to most computer scientists. The Queue occurs often in our daily life. There are many people lined up at the lunch time. Now we define that ‘f’ , then they are ff, mm,…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6185 题意:用 1 * 2 的小长方形完全覆盖 4 * n的矩形有多少方案. 解法:小范围是一个经典题,之前写过,见这里:http://blog.csdn.net/just_sort/article/details/73650284 然后推出前几项发现是有规律的,要问如何发现规律,不妨丢到std跑一跑... #include<bits/stdc++.h> using namespace std;…
How many ways?? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4838    Accepted Submission(s): 1900 Problem Description 春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看…
http://acm.hdu.edu.cn/showproblem.php?pid=6395 Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1475    Accepted Submission(s): 539 Problem Description Let us define a sequence as belo…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6470 写这道题是为了让自己不要忘记矩阵快速幂如何推出矩阵式子的. 注意 代码是TLE的!! #include<stdio.h> #include<string.h> #define mem(a, b) memset(a, b, sizeof(a)) typedef long long ll; ; ll n; struct Matrix { ll a[][]; }A, res, temp…
这道题得到了学长的助攻,其实就是一个马尔科夫链,算出一步转移矩阵进行矩阵快速幂就行了,无奈手残 这是我第一回写矩阵快速幂,写的各种毛病,等到调完了已经8点44了,交了一发,返回PE,(发现是少了换行)再想交的时候已经开始hack了 真是TMD.......,然后rejudge完了之后再HDOJ上瞬间AC,真是...狗了,只能是自己手残 手残,手残,手残(重要的事情说三遍) 思路 :(杭电官方题解,我就不班门弄斧了..QAQ) 考虑dpdp,用f_{t,x}f​t,x​​表示第tt秒在xx的概率,…
emmmmm..就是矩阵快速幂,直接附代码: #include <cstdio> using namespace std; ; ; struct Matrix { int m[maxn][maxn]; }ans,res; int n; Matrix mul(Matrix a,Matrix b) { Matrix tmp; ; i <= n; i++) ; j <= n; j++) tmp.m[i][j] = ; ; i <= n; i++) ; j <= n; j++)…
Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1951    Accepted Submission(s): 750 Problem Description Let us define a sequence as below ⎧⎩⎨⎪⎪⎪⎪⎪⎪F1F2Fn===ABC⋅Fn−2+D⋅Fn−1+⌊Pn⌋ Your…
;i<=n;i++) { )ans=(ans*+)%m; %m; } 给定n,m.让你用O(log(n))以下时间算出ans. 打表,推出 ans[i] = 2^(i-1) + f[i-2] 故 i奇数:ans[i] = 2^(i-1) + 2^(i-3) ... + 1; i偶数:ans[i] = 2^(i-1) + 2^(i-3) ... + 2; 故可以用等比数列求和公式. 公式涉及除法.我也没弄懂为啥不能用逆元,貌似说是啥逆元可能不存在. 所以a/b % m == a%(b*m) / b…
number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 175    Accepted Submission(s): 119 暴力发现当4 12 33 88 232 和斐波那契数列对比  答案为 第2*k+3个数减1 直接用矩阵快速幂求的F[2*k+3]  然后减1 A=1,B=0; 然后矩阵快速幂2*k…
Problem Description We define a sequence F: ⋅ F0=0,F1=1;⋅ Fn=Fn−1+Fn−2 (n≥2). Give you an integer k, if a positive number n can be expressed byn=Fa1+Fa2+...+Fak where 0≤a1≤a2≤⋯≤ak, this positive number is mjf−good. Otherwise, this positive number is …
题目链接:https://vjudge.net/problem/HDU-5950 思路: 构造矩阵,然后利用矩阵快速幂. 1 #include <bits/stdc++.h> 2 #include <time.h> 3 #include <set> 4 #include <map> 5 #include <stack> 6 #include <cmath> 7 #include <queue> 8 #include <…
http://acm.hdu.edu.cn/showproblem.php?pid=5015 需要构造一个 n+2 维的矩阵. 就是要增加一维去维护2333这样的序列. 可以发现 2333 = 233*10 + 3 所以增加了一维就 是1, 然后就可以全部转移了. 10 0 0 0 0 ... 1                                                                                                   1…
题目链接 Fast Matrix Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 87    Accepted Submission(s): 39 Problem Description One day, Alice and Bob felt bored again, Bob knows Alice is a…
题目链接 给一个长度为n的字符串, 每个字符可以使f或m. 问你不包含子串fmf以及fff的字符串数量有多少. 令0表示mm结尾, 1表示mf, 2表示ff, 3表示fm. 那么 f(n+1, 0) = f(n, 0) + f(n, 3) f(n+1, 1) = f(n, 0) f(n+1, 2) = f(n, 1) f(n+1, 3) = f(n, 1) + f(n, 2) 所以构造出矩阵 {1, 0, 0, 1} {1, 0, 0, 0} {0, 1, 0, 0} {0, 1, 1, 0}…
Problem Description Define f(n) , we have =+++ =++ =++ =++ =+ =+ =+ = totally ways. Actually, we will have f(n)=(n-) after observations. Given a pair of integers n and k, your task (n-) ways. In the example above, number occurs times, only occurs onc…
Problem Description Lele now is thinking about a simple function f(x). If x < f(x) = x. If x >= f(x) = a0 * f(x-) + a1 * f(x-) + a2 * f(x-) + …… + a9 * f(x-); And ai(<=i<=) can only be or . Now, I will give a0 ~ a9 and two positive integers k…
Problem Description A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%. Input 数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n( <= n <= )和k( <= k < ^)两个数据.接下来有n行,每行有n个数据,每个数据的范围是[,],表示方阵A的内容. Output 对应每组数据,输出Tr(A^k)%.   Sample Input   Sample Output   Author xhd   Sourc…
Problem Description An Arc of Dream is a curve defined by following function: where a0 = A0 ai = ai-*AX+AY b0 = B0 bi = bi-*BX+BY What ,,,?   Input There are multiple test cases. Process to the End of File. Each test nonnegative integers as follows:…
官方题解: 观察递推式我们可以发现,所有的fi​​都是a的幂次,所以我们可以对f​i​​取一个以a为底的log,g​i​​=log​a​​ f​i​​ 那么递推式变g​i​​=b+c∗g​i−1​​+g​i−2​​,这个式子可以矩阵乘法 这题有一个小trick,注意a mod p=0的情况. 分析:排除了a mod p=0的情况,幂次可以对(p-1)取模,这是由于离散对数定理 相关定理请查阅 算导 吐槽:比赛的时候就是被a mod p=0这种情况给hack掉了,我太弱了 #include <st…
Description 存在如下递推式: F(n+1)=A1*F(n)+A2*F(n-1)+-+An*F(1) F(n+2)=A1*F(n+1)+A2*F(n)+-+An*F(2) - 求第K项的值对1000000007取模的结果 Input 单组测试数据 第一行输入两个整数 n , k (1<=n<=100,n < k<=10000000000) 第二行输入 n 个整数 F(1) F(2) - F(n) 第三行输入 n 个整数A1 A2 - An Output 输出一个整数 Sa…
题目不难懂.式子是一个递推式,并且不难发现f[n]都是a的整数次幂.(f[1]=a0;f[2]=ab;f[3]=ab*f[2]c*f[1]...) 我们先只看指数部分,设h[n]. 则 h[1]=0; h[2]=b; h[3]=b+h[2]*c+h[1]; h[n]=b+h[n-1]*c+h[n-1]. h[n]式三个数之和的递推式,所以就可以转化为3x3的矩阵与3x1的矩阵相乘.于是 h[n] c  1  b h[n-1] h[n-1] = 1  0  0 * h[n-2] 1       0…
Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1424    Accepted Submission(s): 469 Problem Description     Holion August will eat every thing he has found. Now there are many foods,bu…
[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}: \[X[n+1]=(aX[n]+c) mod m\] 其中mod m表示前面的数除以m的余数.从这个式子可以看出,这个序列的下一个数总是由上一个数生成的. 用这种方法生成的…
[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}: \[X[n+1]=(aX[n]+c) mod m\] 其中mod m表示前面的数除以m的余数.从这个式子可以看出,这个序列的下一个数总是由上一个数生成的. 用这种方法生成的…