博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
772002画马尾
阅读量:5058 次
发布时间:2019-06-12

本文共 1838 字,大约阅读时间需要 6 分钟。

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

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

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

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

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

Input

一行,三个整数m,n,t

1-50组数据 m2tmn100

51-100组数据 m5tmn10000

101-300组数据 m10tmn1000000000

Output

一个整数,表示方案数,因为这个数比较大,所以输出对10007求余的结果。

Sample input and output

Sample Input Sample Output
1 2 0
1
2 93 1
8605

Source

每周一题 div1
 
题解:
直接矩阵快速幂即可
 
 
#include 
using namespace std;const int mod = 10007;int m , n , t;struct mat{ int r , c , ele[12][12]; void init_dig(){ for(int i = 0 ; i < r ; ++ i) for(int j = 0 ; j < c ; ++ j) ele[i][j] = (i == j); } void init(){ memset( ele , 0 , sizeof( ele ) ); }};mat mul(const mat & a , const mat & b){ mat res ; res.r = a.r , res.c = b.c; for(int i = 0 ; i < a.r ; ++ i){ for(int j = 0 ; j < b.c ; ++ j){ int cnt = 0; for(int k = 0 ; k < a.c ; ++ k){ cnt += a.ele[i][k]*b.ele[k][j]; if( cnt >= mod ) cnt %= mod ; } res.ele[i][j] = cnt; } } return res;}mat pow( mat a , int b ){ mat res ; res.r = a.r , res.c = a.c; res.init_dig(); while( b ){ if( b & 1 ) res = mul( res , a ); b>>=1; a = mul( a , a ); } return res;}mat f;int main(int argc,char *argv[]){ scanf("%d%d%d",&m,&n,&t); f.r = t+1 , f.c = t+1; f.init(); for(int i = 0 ; i <= t ; ++ i){ f.ele[i][i] += ( m - t ); if(i > 0) f.ele[i][i-1] += i; if(i < t) f.ele[i][i+1] += (t-i); } mat ans ; ans.r = 1 , ans.c = t+1; ans.init(); ans.ele[0][t]=1; ans = mul( ans , pow( f , n ) ); printf("%d\n" ,ans.ele[0][t]); return 0;}

 

转载于:https://www.cnblogs.com/Xiper/p/5240121.html

你可能感兴趣的文章
Android 自定义View (三) 圆环交替 等待效果
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>
Word Break II
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
jdk从1.8降到jdk1.7失败
查看>>
一些关于IO流的问题
查看>>
mongo备份操作
查看>>
8 -- 深入使用Spring -- 3...1 Resource实现类InputStreamResource、ByteArrayResource
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>