Hard Wuxing

Accepted : 11 Submit : 153
Time Limit : 1000 MS Memory Limit : 65536 KB 

题目描述

“五行”是中国传统哲学思想,它认为认为大自然的现象由“木、火、土、金、水”这五种气的变化所总括, 不但影响到人的命运,同时也使宇宙万物循环不已。 五行具有相生相克的性质,规律如下:

  • 五行相克:金克木,木克土,土克水,水克火,火克金。
  • 五行相生:金生水,水生木,木生火,火生土,土生金。
  • 五行任一行与其他五行的关系为:同我、生我、我生、克我、我克。

 
给你一个1*n的格子,将五行填上去,每格填一个,要求相邻格以及首尾格不能是同我和相克的关系, 请问一共有多少种不同的方案?

输入

多组样例,每组一个整数n(0≤n≤10 18 ),如果n为0,表示输入结束,这个样例不需要处理。

输出

每行输出一个样例的结果,因为数值可能非常大,请将结果对10 9 +7取模。

样例输入

1
2
0

样例输出

5
10
找出递推关系式然后用矩阵快速幂
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const long long int MOD=1e9+7;struct MARTRIX
{long long int m[5][5];
}E,A;void init()
{memset(E.m,0,sizeof(E.m));memset(A.m,0,sizeof(A.m));E.m[0][0]=E.m[1][1]=E.m[2][2]=1;A.m[0][2]=A.m[1][1]=A.m[1][2]=A.m[2][1]=1;A.m[2][0]=2;
}MARTRIX muil(MARTRIX a,MARTRIX b)
{MARTRIX ANS;memset(ANS.m,0,sizeof(ANS.m));for(int i=0;i<3;i++){for(int j=0;j<3;j++){ANS.m[i][j]=0;for(int k=0;k<3;k++){ANS.m[i][j]=(ANS.m[i][j]+a.m[i][k]*b.m[k][j]%MOD)%MOD;}}}return ANS;
}MARTRIX POW(long long int n)
{init();while(n){if(n&1LL) E=muil(E,A);A=muil(A,A);n>>=1;}return E;
}void solve(long long int n)
{MARTRIX M=POW(n);printf("%I64d\n",(M.m[0][0]*5)%MOD);
}int main()
{long long int n;
while(scanf("%I64d",&n)!=EOF)
{if(n<=3){if(n==1) puts("5");else if(n==2) puts("10");else if(n==3) puts("0");continue;}solve(n);
}return 0;
}

Hard Wuxing相关推荐

  1. 面向对象程序设计第三次实验课——Wuxing

    请无视奇葩常量名-- // wuxing.h#pragma once #include <iostream> #include <cstring> #include <s ...

  2. 湘潭校赛 Hard Wuxing

    Hard Wuxing Accepted : 13   Submit : 166 Time Limit : 1000 MS   Memory Limit : 65536 KB 题目描述 "五 ...

  3. Game of Wuxing

    Game of Wuxing Accepted : 18 Submit : 35 Time Limit : 1000 MS Memory Limit : 65536 KB  题目描述 "五行 ...

  4. 湘潭校赛 Easy Wuxing

    Easy Wuxing Accepted : 25   Submit : 124 Time Limit : 1000 MS   Memory Limit : 65536 KB 题目描述 "五 ...

  5. 湘潭赛Easy wuxing(递推+矩阵快速幂or DP)

    湘潭赛Easy wuxing(递推+矩阵快速幂or DP) 十分感谢老师的思路! 题目描述 "五行"是中国传统哲学思想,它认为认为大自然的现象由"木.火.土.金.水&qu ...

  6. ZOJ 3328 WuXing

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3328 题面: Wu Xing Time Limit: 1 Sec ...

  7. XTU—1190 Game of Wuxing

    纯模拟 http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1190 #include<cstdio> int mai ...

  8. 湘潭大学oj 1191 Hard Wuxing

    矩阵乘法求解.非常卡时间.因为转移矩阵固定,直接处理出快速幂中所有转移矩阵的幂.还有因为没用longlongRE了一发 #include <cstdio> #include <alg ...

  9. 让我们一起来起花名吧

    原文:https://xcoder.in/2016/02/24/lets-hua/ 起因 起因是我一个叫『小龙』的好基友由于某些原因离职去了一家跟阿里一样有着『花名文化』的公司,于是开始为花名犯愁. ...

最新文章

  1. android xml opacity,Android Drawable详解
  2. 深度学习背后的基础-神经网络揭秘
  3. qstring 属于元数据类型吗_2020年退休养老金只有1800元,属于什么水平?还要继续工作吗?...
  4. java List集合
  5. Guava之Ordering
  6. JDK 8的启发性Javadoc
  7. 波士顿动力放出新视频:谁都挡不住机器狗开你的门
  8. 1.1.29 加入项目符号后换行文字未对齐
  9. Exchange Server2013 系列七:客户端访问服务器高可用性部署实战
  10. Spring MVC表单实例
  11. 所有进程的信息 linux,LINUX下获取所有进程信息
  12. 2020年下半年信息安全工程师下午真题及答案解析
  13. hdmi接口有什么用_当贝投影仪HDMI(ARC)接口是什么意思?
  14. OSChina 周三乱弹 —— 有趣的灵魂会流油
  15. django-上下文处理器
  16. esp8266_deauther将html压缩成字节码
  17. mcldownload文件夹_download文件夹是什么?Win7系统download文件夹可以删除?
  18. git报错:error.GitError: manifests rev-list (‘^HEAD‘, ‘14686468c69c63f1995ab2a0a9ad90b2e1d5e01c‘, ‘--‘)
  19. 路由器dns服务器怎么才能自动改变,更改路由器DNS 提高网速又一方法技巧
  20. 如何做好论文汇报(转载)

热门文章

  1. 使用 Android Studio 检测内存泄漏与解决内存泄漏问题
  2. ffmpeg图片转视频以及报Could find no file with path ‘F:\test/%05d.png‘ and index in the range 0-4这样的错误解决方法
  3. 达梦DMHS异构数据库数据实时同步软件速知
  4. BUX和ABN AMRO Clearing就区块链股票投资类App达成合作
  5. 面试题总结(持续更新中~)
  6. 将xls文件转化为xlsx文件
  7. X240 Ubuntu18.04安装流水帐
  8. mysql 自定义函数报错_Mysql自定义函数报错解决方法 | 学步园
  9. freebsd mysql 安装教程_FreeBSD安装MySQL_MySQL
  10. 数据库、计算机网络,操作系统刷题笔记5