HDU 2604 Queuing (矩阵乘法)】的更多相关文章

Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2483    Accepted Submission(s): 1169 Problem Description Queues and Priority Queues are data structures which are known to most computer…
题目地址:HDU 2604 Queuing 题意:  略 分析: 易推出:   f(n)=f(n-1)+f(n-3)+f(n-4) 构造一个矩阵: 然后直接上板子: /* f[i] = f[i-1] + f[i-3] + f[i-4] */ #include<cstdio> #include<cstring> using namespace std; const int N = 4; int L, M; struct mtx { int x[N+1][N+1]; mtx(){ me…
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): 如果最后一个…
Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1949    Accepted Submission(s): 911 Problem Description Queues and Priority Queues are data structures which are known to most computer s…
题目地址:HDU 2604 这题仅仅要推出公式来,构造矩阵就非常easy了.问题是推不出公式来..TAT.. 从递推的思路考虑.用f(n)表示n个人满足条件的结果.假设最后一个是m则前n-1人能够随意排列,有f(n-1)种:假设是f,则考虑后两位mf和ff,没有一定满足或者一定不满足的状态,所以继续考虑一位,考虑后三位mmf, fmf, mff, fff,当中fmf和fff不符合条件.假设是mmf,则前n-3种能够随意排列,有f(n-3)种.假设是mff.则继续往前考虑一位.假设是fmff不符合…
题目 最早不会写,看了网上的分析,然后终于想明白了矩阵是怎么出来的了,哈哈哈哈. 因为边上的项目排列顺序不一样,所以写出来的矩阵形式也可能不一样,但是都是可以的 //愚钝的我不会写这题,然后百度了,照着大神的题解,有了如下的东东: //根据ff, mm, fm, mf ,先列出所有可能的组合方式(1表示连在一次,具体判断方式自己看看就知道了) // ff mm fm mf //ff 1 0 1 0 //mm 0 1 0 1 //fm 0 1 0 1 //mf 1 0 1 0 //题目中说不能有f…
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=2604 这题居然O(9 * L)的dp过不了,TLE,  更重要的是找出规律后,O(n)递推也过不了,TLE,一定要矩阵快速幂.然后立马GG. 用2代表m,1代表f.设dp[i][j][k]表示,在第i位,上一位站了的人是j,这一位站的人是k,的合法情况. 递推过去就是,如果j是1,k是2,那么这一位就只能放一个2,这个时猴dp[i][k][2] += dp[i - 1][j][k]; 其他情况分类下就好,然后…
题目链接:Queuing 题意:有一支$2^L$长度的队伍,队伍中有female和male,求$2^L$长度的队伍中除 fmf 和 fff 的队列有多少. 题解:先推导递推式:$f[i]=f[i-1]+f[i-3]+f[i-4]$ 当前为f: 前一个为f(ff),那么再前一个只能为m(mff),再前一个也只能为m(mmff),即从$f[i-4]$转移过来: 前一个为m(mf),那么再前一个只能为m(mmf),即从$f[i-3]$转移过来. 当前为m: 前一个为m和f均可,即从$f[i-1]$转移…
Queuing [题目链接]Queuing [题目类型]递推+矩阵 &题解: 这题想是早就想出来了,就坑在初始化那块,只把要用的初始化了没有把其他的赋值为0,调了3,4个小时 = = 本题是可以递推的,我们先假设L比较大,比如L>100,之后F(L)等于什么呢? L位有2种情况: ①L位是m 那么这时的种类数就是F(L-1) ②L位是f 那么可行的情况有这2种:当前面2位是fm时是可行的,构成fmm.种类数是F(L-3);当前3位是fmm时构成ffmm,种类数是F(L-4) 所以F(L)=F…
Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6639    Accepted Submission(s): 2913 Problem Description Queues and Priority Queues are data structures which are known to most computer…
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 和 m 组成的,队列长度为 L,那么这个队列的排列数为 2^L 现在定义一个E-queue,即队列排列中是不含有 fmf or fff ,然后问长度为L的E-queue的个数 % M 思路: 这道题的关键是找到递推关系!递推关系为:Fn = Fn-1 + Fn-3 + Fn-4,与HDU1575简直一模一样,然后直接矩阵快速幂就OK了 HDU 1575 题解链接 递推关系式不好找,我们可以将字母 f m 分别看为 1 0,给出一个长度L,排列数是为 2^…
Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2773    Accepted Submission(s): 1275 Problem Description Queues and Priority Queues are data structures which are known to most computer…
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 and ‘m’ is…
昨晚搞的第二道矩阵快速幂,一开始我还想直接套个矩阵上去(原谅哥模板题做多了),后来看清楚题意后觉得有点像之前做的数位dp的水题,于是就用数位dp的方法去分析,推了好一会总算推出它的递推关系式了(还是菜鸟,对dp还是很不熟练): dp[i][0/1]表示以0/1开头的不含101且不含111的i位数(用1来表示f,0表示m,看着方便点),然后,状态转移方程是: dp[i][0]=dp[i-1][0]+dp[i-1][1]; //以0开头的话后面接什么数都不成问题 dp[i][1]=dp[i-2][0…
长度为 n 有男有女的队伍里没有 fmf 和 fff 的序列有多少 判断最后一个人无法得出结论 于是判断最后两人的递推式: fm(n) =   mm(n-1) //最后两人为fm的长度为n的队伍 只能由 mm(n-1)得到 mf(n) = fm(n-1)+        ff(n-1) ff(n) = fm(n-1) mm(n) =         mf(n-1)+ mm(n-1) 最后S(n)=fm(n)+mf(n)+ff(n)+mm(n): |1 1 1 1 1| | S(n-1) | |…
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…
传送门:HDU 5895 Mathematician QSC 这是一篇很好的题解,我想讲的他基本都讲了http://blog.csdn.net/queuelovestack/article/details/52577212 [分析]一开始想简单了,对于a^x mod p这种形式的直接用欧拉定理的数论定理降幂了 结果可想而知,肯定错,因为题目并没有保证gcd(x,s+1)=1,而欧拉定理的数论定理是明确规定的 所以得另谋出路 那么网上提供了一种指数循环节降幂的方法 具体证明可以自行从网上找一找 有…
[题目链接] http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=663&pid=1002 [题意] 给定一个有向图,若干个询问,问从u走k步到达各个顶点的概率. 其中除法化为乘逆元. [思路] 设f[i][j]表示到达i点走了j步的概率,则有转移式: f[i][j]=sigma{ f[pre(i)][j-1]/out[pre(i)] } 其中pre为有向图上的前一个节点,out[u]为u的出度大小. 构造矩阵后使用矩…
题目大意:用k种字符构建两个长度为n的字符串(每种字符有无限多个),要求对应位置字符相同的连续子串最长长度为m,问方法数. 其中k,n,m是输入,n(1<=n<=1000000000), m(1<=m<=10), k(1<=k<=26). 对题目解释更详细点儿,如下两串 123456 223466 这个的“对应位置字符相同的连续子串最长长度”是3,是字符串“234”. 解题思路,这题一看就是DP或者组合数学,但是不会组合数学,只能DP了dp[i][j]表示前i个字符,最…
How many ways?? Time Limit:1000 MS Memory Limit: 32768 K Problem Description 春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线去教室, 但是由于时间问题, 每次只能经过k个地方, 比方说, 这次葱头决定经过2个地方, 那他可以先去问鼎广场看看喷泉, 再去教室, 也可以先到体育场…
A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4307    Accepted Submission(s): 2586 Problem Description Lele now is thinking about a simple function f(x).If x < 10 f(x) =…
So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3804    Accepted Submission(s): 1251 Problem Description A sequence Sn is defined as: Where a, b, n, m are positive integers.┌x┐is the ce…
题解见X姐的论文 矩阵乘法递推的优化.仅仅是mark一下. .…
传送门 题意: 相邻珠子不能相同,旋转等价.$n$个珠子$k$中颜色,求方案数 首先中间珠子$k$种选择,$k--$如果没有相邻不同的限制,就和$POJ\ 2154$一样了$|C(f)|=k^{\#(f)}$但是有了相邻不同的限制,每种循环的颜色就不能任意选择了旋转等价循环个数是$gcd(n,i)$,同一个循环的元素相差$i$步容易得到只要满足长度$gcd(n,i)$的一段相邻颜色不同整个环就不同了,因为这样的一段正好每个循环有一个元素考虑$DP$,$f[i]$表示$i$个元素组成的环染色方案数…
题意 在一个 \(n\) 个节点 \(m\) 条边的有向图上随机游走,有 \(Q\) 个询问,每次给定一个起点 \(u\) 和步数 \(K\) ,每次回答最后停在每个节点的概率. \(1 \leq n \leq 50\) \(1 \leq m \leq 1000\) \(1 \leq Q \leq 20\) \(1 \leq K \leq 10^9\) 思路 同样构造一个"起始矩阵" \(A_{1n}\) 和一个"转移矩阵" \(B_{nn}\) .如果知道 \(B…
矩阵乘法来进行所有路径的运算, 线段树来查询修改. 关键还是矩阵乘法的结合律. Harry And Math Teacher Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 326    Accepted Submission(s): 89 Problem Description As we all know, Harry Porter…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4332 题目意思: 用1*1*2的长方体构造一个中间为空的底面3*3的立体烟囱. 解题思路: 实际上就是poj上这道题的升华版.推荐先做那道题. 只不过本题的每一层相当于poj上那题的每一行,此题层数很多,所以很直白的想到用矩阵快速幂加速. 这类型的矩阵乘法做的比较少. 用二维矩阵表示两层之间的转移关系,第一维表示上一层的状态,第二维表示下一层的状态,作为基矩阵.每次乘以它就相当于加了一层.状态图和…
http://acm.hdu.edu.cn/showproblem.php?pid=5015 需要构造一个 n+2 维的矩阵. 就是要增加一维去维护2333这样的序列. 可以发现 2333 = 233*10 + 3 所以增加了一维就 是1, 然后就可以全部转移了. 10 0 0 0 0 ... 1                                                                                                   1…