Description

ZZY领养了一对刚刚出生的不知名小宠物..巨萌巨可爱!!...小宠物的生命为5个单位时间并且不会在中间出意外翘辫子(如: 从0出生能活到5但活不到6)..小宠物经过2个单位时间成熟..刚刚成熟的一对小宠物能立即生育6只新的小宠物(如: 从0出生的一对在2时成熟并进行第一次生育)...小宠物是很忠诚的..不会在中途换伴侣..每对小宠物生育一次这一对的生育能力就会降低2个..也就是说一对小宠物在第二次生育时就只能生4个了..小宠物成熟后每个单位时间都会尽力的生育(例: 从0出生的一对..2时间生6个..3时间生4个..4时间生2个...5时间生不出..6时间这一对已经挂了..)..生育出来的新小宠物会继续这个过程.. 
ZZY想知道从单位时间0开始..经过M个单位时间(时间为M时)将有多少只活着的小宠物(0时刻有2只小宠物)
因为ZZY隐隐地觉得什么地方怪怪的...所以请将这个数目mod 10000 

Input

多组数据读到EOF
每组数据一行:  
M ( 0<=M<=2000000000 )
最多500组数据 

Output

每组输出一行为  Case 组号: 答案,即M时刻活着的小宠物个数%10000

Sample Input

0
1
2
3
4
8

Sample Output

Case 1: 2
Case 2: 2
Case 3: 8
Case 4: 12
Case 5: 32
Case 6: 528
#include <stdio.h>
#include <string.h>
#define mod 10000 struct Mat
{
int matrix[][];
}mat;
int f[],n; Mat mul(Mat a,Mat b)
{
int i,j,k;
Mat c;
for(i=; i<; i++)
for(j=; j<; j++)
{
c.matrix[i][j] = ;
for(k=; k<; k++)
{
c.matrix[i][j] += a.matrix[i][k] * b.matrix[k][j];
c.matrix[i][j] %= mod;
}
}
return c;
}
Mat solve(int m)
{
Mat mt;
if(m==) return mat;
if(m & ) return mul(solve(m-),mat);
else
{
mt = solve(m/);
return mul(mt,mt);
}
} int main()
{
//freopen("in.txt","r",stdin);
int cnt=,s,i;
while(scanf("%d",&n)!=EOF)
{
memset(mat.matrix,,sizeof(mat.matrix));
for(i=; i<; i++) mat.matrix[i][i+]=;
mat.matrix[][]=;
mat.matrix[][]=;
mat.matrix[][]=;
s=;
printf("Case %d: ",cnt++);
if(n==) puts("");
else if(n==) puts("");
else if(n==) puts("");
else if(n==) puts("");
else if(n==) puts("");
else
{
for(i=; i<; i++) s= (s+*solve(n-i).matrix[][] )% mod;
printf("%d\n",s);
}
}
return ;
}

找规律+快速幂矩阵

ZZY的宠物的更多相关文章

  1. 中南月赛 1313: ZZY的宠物

    1313: ZZY的宠物 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 114  Solved: 59[Submit][Status][Web Boar ...

  2. ZZY的宠物(矩阵运算+快速幂)

    E :ZZY的宠物 描述 ZZY领养了一对刚刚出生的不知名小宠物..巨萌巨可爱!!...小宠物的生命为5个单位时间并且不会在中间出意外翘辫子(如: 从0出生能活到5但活不到6)..小宠物经过2个单位时 ...

  3. Bzoj1208 [HNOI2004]宠物收养所

    Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 7457  Solved: 2960 Description 最近,阿Q开了一间宠物收养所.收养所提供两 ...

  4. 【BZOJ1208】宠物收养所(平衡树,splay)

    题意:见题面 思路:因为每个时刻要么全是人要么全是宠物,所以可以一棵splay解决 维护单点插入,单点删除,求前驱,求后继即可 ..,..]of longint; num,fa:..]of longi ...

  5. rqnoj28[stupid]愚蠢的宠物

    题目描述 背景 大家都知道,sheep有两只可爱的宠物(一只叫神牛,一只叫神菜).有一天,sheep带着两只宠物到狗狗家时,这两只可爱的宠物竟然迷路了…… 描述 狗狗的家因为常常遭到猫猫的攻击,所以不 ...

  6. noip模拟赛(一)宠物之战

    宠物之战 (senso.pas/c/cpp) [问题描述] 众所周知,moreD的宠物已经被moreD奴役得体无完肤.这只宠物实在忍无可忍,把自己每天走魔法树的经历告诉了自己的宠物.同时他还说明了自己 ...

  7. BZOJ 1208: [HNOI2004]宠物收养所

    1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 7514  Solved: 2982[Submit][Sta ...

  8. 从.NET的宠物商店到Android MVC MVP

    1 一些闲话 记得刚进公司的时候,我们除了做常规的Training Project外,每天还要上课,接受各种技术培训和公司业务介绍.当时第一次知道QA和SQA的区别.Training Project时 ...

  9. Java实例分析:宠物商店

    设计一个“宠物商店”,在宠物商店中可以有多种宠物,试表示出此种关系,并要求可以根据宠物的关键字查找相应的宠物信息. //======================================== ...

随机推荐

  1. Adobe Photoshop CC 2015安装激活

    分享一下Adobe Photoshop CC 2015 安装激活步骤 工具/原料   xf-adobecc2015.exe Adobe Photoshop CC 2015官方原版 方法/步骤   1 ...

  2. PHPSTORM实用快捷键

    alt + F7 find usages 功能,可以很方便的找到函数在哪里调用了 Ctrl + E 可查看最近打开文件或项目 项目名右键选择"Local History | Show His ...

  3. JS~模拟表单在新窗口打开,避免广告拦截

    说起广告拦截,这应该是浏览器的一个特性,它会将window.open产生的窗口默认为一个广告,将它进行拦截,但有时,这不是我们所希望的,有时,我们就是需要它在客户端的浏览器上弹出一个新窗口,以展示数据 ...

  4. 新浪微博登陆,获取token

    用WeiboAuthListener获取code 用下面的代码获取token..半成品的sdk真让人捉急. String code = values.getString("code" ...

  5. 获取当前位置信息-ios

    locationManager= [[CLLocationManager alloc] init];//位置管理器 locationManager.desiredAccuracy = kCLLocat ...

  6. [Falcor] Return the data from server

    <!-- index.html --> <html> <head> <!-- Do _not_ rely on this URL in production. ...

  7. NPM与调试工具的使用

    1)NPM 2)nodemon 自动监视文件的变化并重启应用 3)pm2 启动node,资源共享 4)node-inspector node调试工具 5)Chrome Developer Tools

  8. web_api vs2015 新加标题无法打开

    HomeController 去掉特性[Authorize]

  9. django: template - built-in tags

    本节介绍模板中的内置标签:if for 承上文,修改 views.py 如下: from django.shortcuts import render_to_response class Person ...

  10. javascript 识别移动端设备

    看到一种比较简单的方法,于是就把它记录下来备用吧.最近离职了,房子换了,还有...真是一把心酸,我知道谁活着都不容易,自己也资格把自己的苦水吐给别人,因为别人也过得不容易,所以大多不快都只能闷着,大家 ...