“问题:众所周知772002很喜欢马尾,所以他决定画几幅马尾送给他的女朋友。

772002会画m种马尾,772002还有n张纸,n张纸分别编号1到n,每张纸上只能画一种马尾。

然而772002的女朋友只喜欢其中t种马尾。并且772002的女朋友只喜欢偶数(因为这象征着成对成双)。

772002想知道有多少种画法,使得n张纸画满并且自己女朋友喜欢的那t种马尾每种个数都恰好为偶数。

然而772002陪女朋友看电影去了,所以他把这个问题交给了你,你能解决吗?

m≤10,t≤m,n≤1000000000 ”

我呆呆的看着拿着神签,不知所措。

“别慌,冷静一下。正如潘星霖所讲:既然是题,那就一定能够做出来的。我们会和你一起想的。”沈柯静静的说道。

说的很有道理,但是这有什么用呢,我也想……

“我有一个简单的做法。”蹲在一旁的小郭,颤颤抖抖地举起了她的右手。

“我暴力枚举每张纸上画的是哪种马尾,然后枚举完之后,再进行检查是不是合法的就好了,这样应该就能得出答……”

“显然不行。”杨宇同还没等小郭说完,就马上就给出了回复,“这样的时间复杂度太高,根本不可能在有效时间内计算出来。”

......

又陷入了死一样的沉寂,只剩下风吹过的声音,就似鬼魂般游荡。

......

“换一个思路?”张冠澜突然说道,“我们可以令dp[i][j]表示画到第i张纸,现在t种马尾中有奇数种的个数为j的方案数。”

沈柯仿佛想到了什么,接着张冠澜说道:“恩,这个思路很好,这个dp的转移就是dp[i][j] = dp[i-1][j-1]*(t-j+1) + dp[i-1][j]*(m-t) + dp[i-1][j+1]*(j+1)。而最后的答案就是dp[n][0]。”

杨宇同补充道:“这样的时间复杂度是O(n*t)的,但是这道题要求n≤1000000000,时间仍然还是不允许,这该怎么办呢?”

一定是哪儿我们都没想到!

......

加油,我们一定想得出的,只差最后一步了。

大家仿佛都这样想着,都紧闭着双眼,思索着……

咦,好像我发现了什么,这个dp转移的时候,只和上一回合有关,而且貌似每次转移的方法都一模一样!

但是这个有什么用呢?

继续想想想。

......

“矩阵!”

“刚才那个式子,其实就是一个t*t大小的矩阵的连乘!”

“举一个例子,当t=4的时候,这个矩阵应该是什么样的呢?

然后这个矩阵的n次方的第一行第一列的第一个数就是答案!

但是,现在又有一个问题来了,如何快速求一个矩阵的n次方呢?”

“快速幂!”大家异口同声的说道。

“和潘星霖说的做法一样,我们只需要log的时间内,就能求出矩阵的n次方出来!”

“没错!”

......

仿佛这道题就解决了?

爽!

“快去,快去向系统说你的答案!时间不多了!”,张冠澜立马冲了过来,大力的将我推向了神签面前!

......

“回答正确。”

“剩余人数:8人”

“游戏继续。”

依旧是那冰冷的声音,不过格外温暖。

CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂 中二版的更多相关文章

  1. CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂

    772002画马尾 题目连接: http://acm.uestc.edu.cn/#/problem/show/1280 Description 众所周知772002很喜欢马尾,所以他决定画几幅马尾送给 ...

  2. (中等) CF 576D Flights for Regular Customers (#319 Div1 D题),矩阵快速幂。

    In the country there are exactly n cities numbered with positive integers from 1 to n. In each city ...

  3. HDU 5863 cjj's string game ( 16年多校10 G 题、矩阵快速幂优化线性递推DP )

    题目链接 题意 : 有种不同的字符,每种字符有无限个,要求用这k种字符构造两个长度为n的字符串a和b,使得a串和b串的最长公共部分长度恰为m,问方案数 分析 : 直觉是DP 不过当时看到 n 很大.但 ...

  4. 华东交通大学2018年ACM“双基”程序设计竞赛 C. 公式题 (2) (矩阵快速幂)

    题目链接:公式题 (2) 比赛链接:华东交通大学2018年ACM"双基"程序设计竞赛 题目描述 令f(n)=2f(n-1)+3f(n-2)+n,f(1)=1,f(2)=2 令g(n ...

  5. [luogu1707] 刷题比赛 [矩阵快速幂]

    题面: 传送门 思路: 一眼看上去是三个递推......好像还挺麻烦的 仔细观察一下,发现也就是一个线性递推,但是其中后面的常数项比较麻烦 观察一下,这里面有以下三个递推是比较麻烦的 第一个是$k^2 ...

  6. Bzoj2510 弱题(矩阵快速幂)

    题面(权限题) 题解 一道概率\(dp\),可以设\(f[i][j]\)表示第\(i\)次操作后,标号为\(j\)的小球的期望个数,那么有: \[ \begin{aligned} &f[i][ ...

  7. generator 1(2019年牛客多校第五场B题+十进制矩阵快速幂)

    目录 题目链接 思路 代码 题目链接 传送门 思路 十进制矩阵快速幂. 代码 #include <set> #include <map> #include <deque& ...

  8. BZOJ 2510: 弱题( 矩阵快速幂 )

    每进行一次, 编号为x的数对x, 和(x+1)%N都有贡献 用矩阵快速幂, O(N3logK). 注意到是循环矩阵, 可以把矩阵乘法的复杂度降到O(N2). 所以总复杂度就是O(N2logK) --- ...

  9. Wannafly Winter Camp 2019.Day 8 div1 E.Souls-like Game(线段树 矩阵快速幂)

    题目链接 \(998244353\)写成\(99824435\)然后调这个线段树模板1.5h= = 以后要注意常量啊啊啊 \(Description\) 每个位置有一个\(3\times3\)的矩阵, ...

随机推荐

  1. ubuntu安装wifi

    因为需要测试app,但是自己本地是deepin.如果win下的话直接安装一个wifi万能管家啥的就完事儿了.可是这个是linux 有点不同.所以就进行百度学习了一波.特此分享. 需要用到的工具 hos ...

  2. 日常开发技巧:在远程机器上直接使用adb

    背景 嵌入式开发中,开发工作是在远程服务器上进行的.当需要adb推送一个文件到开发板时,则需要重新在本地机器中找到该文件,再执行命令.这样的操作比较麻烦. 下面介绍我的解决方式. sshfs挂载 首先 ...

  3. Android 6.0 Marshmallow root 方法

    android 6.0 已经推出 release 版本了, nexus 5,6,7,9 都放了官方镜像, 本篇文章使用 nexus 6 安装最新的 android 6.0 并进行root step 1 ...

  4. 1.Firedac开门篇

    firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++ Builder和FreePascal.firedac可以高速直接访问: 1.InterBase 2.SQLi ...

  5. C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. vue做购物车

    写一点废话,昨天敲代码找bug,找了好久都没找到,后来一哥们找到他说,找代码的bug就像男女朋友吵架,女问男你错了没,男说错啦,女再问错哪了,男傻眼了不知道错哪.在找代码的过程中一直知道我错啦就是找不 ...

  7. mybatis源码阅读(动态代理)

    这一篇文章主要是记录Mybatis的动态代理学习成果,如果对源码感兴趣,可以看一下上篇文章  https://www.cnblogs.com/ChoviWu/p/10118051.html 阅读本篇的 ...

  8. [ 总结 ] Linux系统启动流程

    Linux系统启动过程分析: 按下电源 --> BIOS自检 --> 系统引导(lilo/grub) --> 启动内核 --> 初始化系统 --> 用户登录 1. BIO ...

  9. js-callee,call,apply概念

    JS - caller,callee,call,apply 概念[转载] 在提到上述的概念之前,首先想说说javascript中函数的隐含参数:arguments Arguments : 该对象代表正 ...

  10. 关于多属性查找问题的sphinx解决方案

    需求描述 mysql中,每一个文档都有多个标签,查询时可以筛选一个标签也可以筛选同时拥有多个标签的文档. 数据示例 文档 标签 1 1,2,3,4,5 2 2,3,4,5,6 3 3,4,5,6,7 ...