ZZY的宠物
来源:互联网 发布:维棠flv视频软件 编辑:程序博客网 时间:2024/04/27 13:46
ZZY的宠物
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 10 Solved: 3
Description
Input
Output
Sample Input
Sample Output
HINT
Source
ZZY
这题收获最大的是让我知道了矩阵的一些用法。。
题目的数据还是比较好推的,可以试着写一下:
刚出生 出生1天 出生2天 出生3天 出生4天 出生5天
2 0 0 0 0 0(初始状态2只刚出生的宠物)
0 2 0 0 0 0(1天后)
6 0 2 0 0 0(2天后)(6=2*3+0*2+0*1)
4 6 0 2 0 0(3天后)(4=0*3+2*2+0*1)
20 4 6 0 2 0 (4天后)(20=6*3+0*2+2*1)
24 20 4 6 0 2(5天后)(24=4*3+6*2+0*1)
……
这便能看出规律。
若初始状态是矩阵A:
2 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
每次变化则是将矩阵A乘以如下矩阵B:
1 0 0 0 0 0
3 1 0 0 0 0
2 0 1 0 0 0
1 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
当输入n时只需求A*B^n,这样得出的矩阵第一行求和便是我们要求的结果。当然数据大的时候还是需要用到矩阵的快速幂。。
#include<iostream>using namespace std;int mm[6][6];int nn[6][6];int i,j,k,n,m,l,sum;void ml(int nnn[6][6],int mmm[6][6]){ int z[6][6]; for (k=0;k<6;k++) for (i=0;i<6;i++) z[k][i]=0; for (k=0;k<6;k++) for (i=0;i<6;i++) for (j=0;j<6;j++) z[i][j]=(z[i][j]+mmm[i][k]*nnn[k][j])%10000; for (k=0;k<6;k++) for (i=0;i<6;i++) mmm[k][i]=z[k][i];}int main(){ int M,s=1;int mm[6][6];int nn[6][6];while (cin>>M){for(i=0;i<=5;i++)for(j=0;j<=5;j++){mm[i][j]=0;nn[i][j]=0;}mm[0][0]=2;sum=0;nn[0][1]=1;nn[1][2]=1;nn[2][3]=1;nn[3][4]=1;nn[4][5]=1;nn[1][0]=3;nn[2][0]=2;nn[3][0]=1; while(M) { if(M&1) ml(nn,mm); M>>=1; ml(nn,nn); } for (k=0;k<6;k++) sum+=(mm[0][k])%10000;cout<<"Case "<<s++<<": "<<sum%10000<<endl;} return 0;}
- ZZY的宠物
- ZZY的宠物
- ZZY的宠物
- ZZY的宠物
- ZZY的宠物解题报告
- ZZY的宠物新解
- CSUOJ 1313: ZZY的宠物
- zzy 的宠物 典型的矩阵乘法 二分+递归
- ZZY的宠物(矩阵运算+快速幂)
- ZZY的新BLOG
- ZZY的爱好
- ZZY的爱好
- ZZY的困惑
- ZZY的八皇后
- zzy
- 魔兽世界的小宠物
- 魔兽世界的宠物大全
- 宠物的“意识”
- qt安装遇到的错误
- Jquery Tab框切换
- 深度围观block:第二集
- DEV(4.9.9.2)+QT(4.3.2)开发环境配置
- Loading Large Bitmaps Efficiently(高效加载大尺寸位图)
- ZZY的宠物
- Win8利用GoAgent代理访问国外网站
- VC6添加自定义消息(主窗口向子窗口发送消息)
- #pragma unroll的用法
- 指定几个目录,有选择的对C/C++/JAVA等类型的代码,进行grep查找字符串的脚本
- 支付宝在ios应用上的开发
- Qt源码分析之信号和槽机制
- windows 2008 server iis7 服务上传文件大小限制
- 如何压缩解压文件夹(文件流)转发