[TJOI2011]构造矩阵】的更多相关文章

考虑优化贪心,不回溯,对于每一位,你都判一下放0的话后面是否有解,用网络流判是否可以完美匹配就行了. 但这样时间复杂是错的,所以不必每次都重新建图,现在原来的图中看一下该行列是否已经匹配,若没有,则强制该行列匹配,重新建图,看是否完美匹配即可 时间复杂度好像是错的?首先,随着你点放的点越来越多,你的图会越来越小,跑的越来越快.其次,有很多行列在原来的途中就已经匹配,不必每次都跑.最后,它可以飞快的通过本题. // luogu-judger-enable-o2 // luogu-judger-en…
题面 题解 很容易看出来是道网络流的题目, 要是没有这个字典序最小, 直接建图跑一遍就好了, 考虑如何输出字典序最小的方案 我们可以贪心地去选择, 若当前点可以选0就选0, 不能选0就选1, 有一点像搜索, 但是直接搜索回溯肯定会爆炸, 考虑如何不回溯 用网络流优化, 若当前点选0后面有可行的方案, 直接选0, 若没有可行的方案, 这个点就只能选1了, 考虑到当前点的选择是在前面点已经选择完并确定有了可行解的情况下进行的, 所以这个策略是可行的, 至于时间复杂度的问题, 代码中会讲到 代码 ##…
Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. Input The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 109) and m (m < 104). Then…
Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 147964    Accepted Submission(s): 35964 Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A…
http://acm.hdu.edu.cn/showproblem.php?pid=5015 由于是个二维的递推式,当时没有想到能够这样构造矩阵.从列上看,当前这一列都是由前一列递推得到.依据这一点来构造矩阵.令b[i]代表第i列,是一个(n+2)*1的矩阵,即b[1] = [1,233......],之所以在加了两行,是要从前一个矩阵b[i-1]得到b[i]中的第二个数2333...,再构造一个转换矩阵a,它是一个(n+2)*(n+2)的矩阵,那么a^(m-1) * b就是第m列. /* a矩…
依据题意.我已经推导出tn的公式.ti=ti.a+ti.b,ti.a=5*t(i-1).a+4*t(i-1).b,ti.b=t(i-1).a+t(i-1).b 然而以下居然不能继续推到sn的公式!!! ! 这道题考察的就是求随意数列的前n项和,在sn的递推公式不太明显的时候.用矩阵解决. 设矩阵A=.矩阵F0= " /> 那么设矩阵S=(A+A2+A3-. + An)*F0 终于答案就是矩阵S内两个元素之和. 那么怎么求A+A2+A3-. + An ? 能够继续构造例如以下的分块矩阵,当中…
http://poj.org/problem?id=3735 大致题意: 有n仅仅猫,開始时每仅仅猫有花生0颗,现有一组操作,由以下三个中的k个操作组成: 1. g i 给i仅仅猫一颗花生米 2. e i 让第i仅仅猫吃掉它拥有的全部花生米 3. s i j 将猫i与猫j的拥有的花生米交换 现将上述一组操作循环m次后,问每仅仅猫有多少颗花生? 非常明显,要先构造矩阵.构造一个(n+1)*(n+1)的矩阵a,初始化为单位矩阵. g i : a[i][n+1] += 1; e i : a[i][j]…
Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1219    Accepted Submission(s): 466 Problem Description As we all known , the Fibonacci series : F(0) = 1, F(1) = 1, F(N…
矩阵的又一个新使用方法,构造矩阵进行高速幂. 比方拿 nyoj299 Matrix Power Series 来说 给出这样一个递推式: S = A + A2 + A3 + - + Ak. 让你求s.A是一个矩阵,而k很大. 怎么办呢? 推理发现:Fn = A + A*F(n-1) 然后我们能够构造矩阵: (Fn .1 ) =  (Fn-1 ,1) * (A.0. A,1) = (F1 , 1) * (A,0. A,1)^K-1 那么我们就能够用一个矩阵高速幂了. 以下是模板题目的代码: #in…
题意:求A + A^2 + A^3 + ... + A^m. 析:主要是两种方式,第一种是倍增法,把A + A^2 + A^3 + ... + A^m,拆成两部分,一部分是(E + A^(m/2))(A + A^2 + A^3 + ... + A^(m/2)),然后依次计算下去,就可以分解,logn的复杂度分解,注意要分奇偶. 另一种是直接构造矩阵,,然后就可以用辞阵快速幂计算了,注意要用分块矩阵的乘法. 代码如下: 倍增法: #pragma comment(linker, "/STACK:10…