Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 249    Accepted Submission(s): 140 Problem Description Farmer John likes to play mathematics games with his N cows. Recently, t…
HDU 2604 Queuing (递推+矩阵快速幂) 这位作者讲的不错,可以看看他的 #include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <cstring> using namespace std; const int N = 5; int msize, Mod; struct Mat { int mat[N][N]; }; M…
Covering Bob's school has a big playground, boys and girls always play games here after school. To protect boys and girls from getting hurt when playing happily on the playground, rich boy Bob decided to cover the playground using his carpets. Meanwh…
链接:  https://www.codechef.com/FEB18/problems/BROCLK Broken Clock Problem Code: BROCLK Chef has a clock, but it got broken today — the minute hand on Chef's clock doesn't rotate by the angle 2π/3600 each second, but by a different fixed angle x. The c…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2842 题目大意:棒子上套环.第i个环能拿下的条件是:第i-1个环在棒子上,前i-2个环不在棒子上.每个环可以取下或放上,cost=1.求最小cost.MOD 200907. 解题思路: 递推公式 题目意思非常无聊,感觉是YY的. 设$dp[i]$为取第i个环时的总cost. $dp[1]=1$,$dp[2]=2$,前两个环取下是没有条件要求的. 从i=3开始,由于条件对最后的环限制最大,所以从最后一…
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’ is short for female a…
题目链接 F[1] = a, F[2] = b, F[i] = 2 * F[i-2] + F[i-1] + i ^ 4, (i >= 3) 现在要求F[N] 类似于斐波那契数列的递推式子吧, 但是N最大能到int的最大值, 直接循环推解不了 所以就得用矩阵快速幂咯 现在就看转移矩阵长什么样了 Mi表示要求的矩阵 转移矩阵用A表示 A * Mi = Mi+1 矩阵Mi里面至少得有 F[i-1] F[i-2] i ^ 4 Mi+1就相应的有 F[i] F[i-1] (i+1)^4 (i+1)^4 =…
传送门:点我 Little Q wants to buy a necklace for his girlfriend. Necklaces are single strings composed of multiple red and blue beads. Little Q desperately wants to impress his girlfriend, he knows that she will like the necklace only if for every prime l…
题目链接 我们可以把棱柱拆成有\(n\)条高的矩形,尝试递推. 在计算的过程中,第\(i\)列(\(i\neq n\))只与\(i-1\)列有关,称\(i-1\)列的上面/下面为左上/左下,第\(i\)列的上面/下面为右上/右下. 我们可以发现,右上可选的颜色数与左上和右下是否同色有关,右下同理,那就记\(f[i][0/1][0/1]\)表示左上与右下是否同色,左下与右上是否同色. 但是第\(n\)列和第\(1\)列不能同色,最后怎么算答案? 不知道第\(n\)列状态算不了,所以我们还要记第\(…
http://www.lightoj.com/volume_showproblem.php?problem=1244 题意:给出六种积木,不能旋转,翻转,问填充2XN的格子有几种方法.\(N <= 10^9 \) 思路:首先手写出前几项,猜出递推式,如果真有比赛出这种题,又不能上网进工具站查是吧?N比较大显然用矩阵快速幂优化一下 /** @Date : 2016-12-18-22.44 * @Author : Lweleth (SoungEarlf@gmail.com) * @Link : ht…
传送门:Educational Codeforces Round 60 – D   题意: 给定N,M(n <1e18,m <= 100) 一个magic gem可以分裂成M个普通的gem,现在需要N个gem,可以选择一定的magic gem,指定每一个分裂或不分裂,问一共有多少种方案 两种分裂方案不同当且仅当magic gem的数量不同,或者分裂的magic gem的索引不同. 思路: 1.首先从dp的角度出发 设F(i)为最终需要i个gem的方案数,容易得到递推式: (总方案数 = 最右边…
Happy Necklace Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1146    Accepted Submission(s): 491 Problem Description Little Q wants to buy a necklace for his girlfriend. Necklaces are single…
题目分析: 对于给出的n,求出斐波那契数列第n项的最后4为数,当n很大的时候,普通的递推会超时,这里介绍用矩阵快速幂解决当递推次数很大时的结果,这里矩阵已经给出,直接计算即可 #include<iostream> #include<stdio.h> using namespace std; ; struct mat{ ][]; }; mat operator * (mat a, mat b){ //重载乘号,同时将数据mod10000 mat ret; ; i < ; i++…
数    位    D    P    开    long    long 首先第一问是转化. 于是就可以二进制下DP了. 第二问是递推,假设最后$n-1$个01位的填法设为$f[i-1]$(方案包括0),于是有fib数列递推关系(很好推),然后矩阵快速幂即可. 一开始思路有点乱,导致边界初始化屡次出错. WA1:见标题赤字. WA2:初始化写错了... #include<iostream> #include<cstdio> #include<cstring> #inc…
题目链接:hdu2604 这题重要的递推公式,找到公式就很easy了(这道题和hdu1757(题解)类似,只是这道题需要自己推公式) 可以直接找规律,推出递推公式,也有另一种找递推公式的方法:(PS:在别的博客粘过来,暂时还不太理解...) 设f(n)为字符串长度为n时复合条件的字符串个数,以字符串最后一个字符为分界点,当最后一个字符为m时前n-1个字符没有限制,即为f(n-1):当最后一个字符为f时就必须去除最后3个字符是fmf和fff的情况,在考虑最后两个字符为mf和ff的情况,显然不行:最…
Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3032    Accepted Submission(s): 1379 Problem Description Queues and Priority Queues are data structures which are known to most computer…
题目链接 题目大意:求$1-n$所拼接起来的数$mod\ m$的值. ----------------------------------- 递推式子很好想:$f_i=f_{i-1}*10^{\lg i+1}+i$ 看到数据范围,肯定不能$O(n)$递推.考虑矩阵加速. 转移矩阵为: $\begin{pmatrix}10^k&0&0\\1&1&0\\1&1&1\end{pmatrix}$ 因为$10^k$是不确定的,所以我们要根据范围来分情况作乘法.详见代码…
题目链接:http://poj.org/problem?id=3734 题意:给出n个排成一列的方块,用红.蓝.绿.黄四种颜色给它们染色,求染成红.绿的方块个数同时为偶数的方案数模10007的值. 题解:这是WC2019第二课堂生成函数的题,实际上可以不用生成函数,我们考虑如下状态:a[i]表示前i个中红.绿均为偶的方案数,b[i]表示其中一个为奇数的方案数,c[i]表示都为奇数的方案数.然后可以这样转移:a[i]=2a[i-1]+b[i-1],b[i]=2a[i-1]+2b[i-1]+2c[i…
如果有相应的OJ题目,欢迎同学们提供相应的链接 相关链接 所有模板的快速链接 Matrix模板 poj_2118_Firepersons,my_ac_code 简单的测试 None 代码模板 /* * TIME COMPLEXITY:O(n^3log(t)) * PARAMS: * a The constant array. * b The initial array. * n The length of array. * t The iterator's value. * * MATRIX M…
传送门 签到题.(考试的时候写挂爆0) 令AiA_iAi​表示邻接矩阵的iii次幂. 于是就是求Al+Al+1+...+ArA_l+A_{l+1}+...+A_rAl​+Al+1​+...+Ar​. 然而快速幂200次会挂掉. 因此我们把其变成Al∗(A0+...+Ar−l)A_l*(A_0+...+A_{r-l})Al​∗(A0​+...+Ar−l​) 后面的直接预处理,这样一次快速幂+一次矩阵乘法就行了. 代码…
POJ3420 很有趣的覆盖问题 递归推导如下: f[n] = f[n-1] + 4*f[n-2] + 2 * [ f[n-3] + f[n-5] + f[n-7] +.... ] + 3 *  [ f[n-4] + f[n-6] + f[n-8] +.... ] ; (1) f[n - 2] = f[n-3] + 4*f[n-4] + 2 * [ f[n-5] + f[n-7] + f[n-9] +.... ] + 3 *  [ f[n-6] + f[n-8] + f[n-10] +....…
思路:考虑全部铺满时,前2列的放法.有如下5种情况:(转自http://blog.csdn.net/elbadaernu/article/details/77825979 写的很详细 膜一下)  假设f(n)表示列数为n时的方案数,那么这五种情况合法的方案数相加即f(n).这里n大于2. 第一种的方案数即f(n-1),第二种的方案数即f(n-2). 第三种:接下来有两种方案可以选择,一是用一块毛毯去填补第二列的空缺部分,那么此时接下来填补的方案数为f(n-2),二是用两块毛毯去填补,这样的话第三…
题目链接:https://ac.nowcoder.com/acm/contest/885/B 题意:已知齐次线性式xn=a*xn-1+b*xn-2,已知a,b,x0,x1,求xn,n很大,n<=1010^6. 思路:矩阵快速幂模板题,构造矩阵t: a b 矩阵ans: x1 x0 显然ans1=t×ans,ans1为: x2 x1 那么ansn=t^n*ans,ansn为: xn+ xn 所以用矩阵快速幂计算t^n,n很大,快速幂要用十进制倍增,对每一位的计算不能直接乘,还要用二进制的快速幂,不…
Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8207    Accepted Submission(s): 3593 Problem Description Queues and Priority Queues are data structures which are known to most computer…
[NOI2017]泳池 实在没有思路啊~~~ luogu题解 1.差分,转化成至多k的概率减去至多k-1的概率.这样就不用记录“有没有出现k”这个信息了 2.n是1e9,感觉要递推然后利用数列的加速技巧 f[n]表示宽度为n的值,然后枚举最后一个连续高度至少为1的块,dp数组辅助 神仙dp:dp[i][j]表示宽度为i,j的高度出现限制,任意矩形不大于k的概率 设计确实巧妙:宽度利于转移给f,高度利于自己的转移 dp数组转移:枚举第一个到达j的限制的位置,这样,前面部分限制至少是j+1,后面至少…
组合数取模就是求的值,根据,和的取值范围不同,采取的方法也不一样. 下面,我们来看常见的两种取值情况(m.n在64位整数型范围内) (1)  , 此时较简单,在O(n2)可承受的情况下组合数的计算可以直接用杨辉三角递推,边做加法边取模. (2) ,   ,并且是素数 本文针对该取值范围较大又不太大的情况(2)进行讨论. 这个问题可以使用Lucas定理,定理描述: 其中 这样将组合数的求解分解为小问题的乘积,下面考虑计算C(ni, mi) %p. 已知C(n, m) mod p = n!/(m!(…
pid=2842">题目链接 题意:求出最少步骤解出九连环. 取出第k个的条件是,k-2个已被取出,k-1个仍在支架上. 思路:想必九连环都玩过吧,事实上最少步骤就是从最后一个环開始.向前一直取出来即可了. 所以如果取出前n个环所须要的步骤为f(n),那么在此之前f(n - 2)要被取出,再加上1.即第n个环被取出,所以仅仅剩下第n-1环没被取出,那么我们将前n-2环再套上去(套上去和取下来的步骤是一样.都为f(n - 2)),所以取出n-1环的步骤为f(n - 1),因此能够得到一个递推…
1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 897  Solved: 394[Submit][Status][Discuss] Description Orez很喜欢玩游戏,他最近发明了一款硬币游戏.他在桌子的边缘上划分出2*n个位置并按顺时针把它们标号为1,2,……,2n,然后把n个硬币放在标号为奇数的位置上.接下来每次按如下操作:在任意两个硬币之间放上一个硬币,然后将原来的硬币拿走:所放硬币的正反面…
A.mat[0][0] = 1, A.mat[0][1] = 1, A.mat[0][2] = 0, A.mat[0][3] = 0, A.mat[0][4] = 0; A.mat[1][0] = 0, A.mat[1][1] = AX*BX%Mod, A.mat[1][2] = AX*BY%Mod, A.mat[1][3] = AY*BX%Mod, A.mat[1][4] = AY*BY%Mod; A.mat[2][0] = 0, A.mat[2][1] = 0, A.mat[2][2] =…
题目分析: 用数论分块的思想,就会发现其实就是连续一段的长度$i$的高度不能超过$\lfloor \frac{k}{i} \rfloor$,然后我们会发现最长的非$0$一段不会超过$k$,所以我们可以弄一个长度为$i$的非$0$段的个数称为"元",然后用"元"去递推. 这个"元"的求法用DP:令数论分块之后第$i$段的长度为$g[i]$ $$f[i][j] = f[i-1][j] + f[i-1][k]*f[i][j-k-1]*g[i]$$ $$…