“问题:众所周知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. 分布式队列Celery

    Celery是什么? Celery 是一个由 Python 编写的简单.灵活.可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具. Celery 专注于实时任务处理,支持任务 ...

  2. mysql 5.6在gtid复制模式下复制错误,如何跳过??

    mysql 5.6在gtid复制模式下复制错误,如何跳过?? http://www.xuchanggang.cn/archives/918.html

  3. ASP.NET MVC 文件上传

    如果想要用HTML表单实作文件上传的功能,那么必须在输出的<form>表单标签加上一个enctype属性,且内容必须设定为multipart/form-data,要通过Html.Begin ...

  4. http状态码+http请求方式

    一.http状态码 2开头 (请求成功)表示成功处理了请求的状态代码. 200   (成功)  服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 201   (已创建)  请求成功并且服 ...

  5. node.js3

    第一部分:express(MVC) 1.下载express npm install express --save 2.引入express require('express') 中间件 body-par ...

  6. js判断文件格式及大小

      //判断照片大小 function getPhotoSize(obj){     photoExt=obj.value.substr(obj.value.lastIndexOf(".&q ...

  7. three.js、webGL、canvas区别于关联

    canvas是html5新定义的一个标签,用于做图形容器 webgl要依赖canvas运行. three.js是以webgl为基础的库,封装了一些3D渲染需求中重要的工具方法与渲染循环.

  8. python 结束练习

    1.文件操作有哪些模式?请简述各模式的作用 r 只读模式 r+ 读写 rb w 只写模式 w+ 写读 wb x 只写模式 x+ 写读 xb a 追加模式 a+ 写读 ab 2.s = '**hello ...

  9. 用eclipse运行项目时怎么设置虚拟机内存大小

    方法一: 打开eclipse,选择Window--Preferences...在对话框左边的树上双击Java,再双击InstalledJREs,在右边选择前面有对勾的JRE,再单击右边的“Edit”按 ...

  10. [知识复习] C语言文件读写

    文件打开 fopen() 返回FILE* 对象,如果打开失败返回NULL,错误代码存入errno中 FILE *fopen( const char * filename, const char * m ...