湘潭校赛 Hard Wuxing
Hard Wuxing |
||
| Accepted : 13 | Submit : 166 | |
| Time Limit : 1000 MS | Memory Limit : 65536 KB | |
题目描述“五行”是中国传统哲学思想,它认为认为大自然的现象由“木、火、土、金、水”这五种气的变化所总括, 不但影响到人的命运,同时也使宇宙万物循环不已。 五行具有相生相克的性质,规律如下:
输入多组样例,每组一个整数n(0≤n≤1018),如果n为0,表示输入结束,这个样例不需要处理。 输出每行输出一个样例的结果,因为数值可能非常大,请将结果对109+7取模。 样例输入1 样例输出5 SourceXTU OnlineJudge |
]

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<cstdlib>
#include<queue>
using namespace std;
typedef __int64 LL;
const LL mod = ; struct Matrix
{
LL mat[][];
void Init()
{
LL cur;
int i,j;
mat[][]=;mat[][]=;mat[][]=;mat[][]=;mat[][]=;
for(i=;i<=;i++)
{
for(j=;j<=;j++)
{
if(j==) cur=;
else cur=j-;
mat[i][j]=mat[i-][cur];
}
}
}
}M_hxl;
void Matrix_ini(Matrix *cur,LL n)
{
int i,j;
for(i=;i<=n;i++)
for(j=;j<=n;j++)
if(i==j)
cur->mat[i][j]=;
else cur->mat[i][j]=;
} Matrix Multiply(Matrix cur,Matrix now,LL len)
{
Matrix ww;
int i,j,k,tmp;
memset(ww.mat,,sizeof(ww.mat));
i=;
for(k=;k<=len;k++)
if(cur.mat[i][k])
{
for(j=;j<=len;j++)
if(now.mat[k][j])
{
ww.mat[i][j]+=cur.mat[i][k]*now.mat[k][j];
if(ww.mat[i][j]>=mod)
ww.mat[i][j]%=mod;
}
}
for(i=;i<=;i++)
{
for(j=;j<=;j++)
{
if(j==) tmp=;
else tmp=j-;
ww.mat[i][j]=ww.mat[i-][tmp];
}
}
return ww;
}
struct Matrix M_add(Matrix cur,Matrix now,LL len)
{
Matrix ww;
int i,j;
memset(ww.mat,,sizeof(ww.mat)); for(i=;i<=len;i++)
for(j=;j<=len;j++)
{
ww.mat[i][j]=cur.mat[i][j]+now.mat[i][j];
if(ww.mat[i][j]>=mod)
ww.mat[i][j]%=mod;
}
return ww;
}
Matrix pow_sum1(Matrix cur,LL n,LL len)
{
Matrix ww;
Matrix_ini(&ww,len);
while(n)
{
if(n&)
{
ww=Multiply(ww,cur,len);
}
n=n>>;
cur=Multiply(cur,cur,len);
}
return ww;
}
void solve(LL n)
{
LL k=;
M_hxl.Init();
M_hxl=pow_sum1(M_hxl,n,);
k=(M_hxl.mat[][]+M_hxl.mat[][])%mod;
k=(k*)%mod;
printf("%I64d\n",k);
}
int main()
{
LL n;
while(scanf("%I64d",&n)>)
{
if(n==)break;
if(n==)
{
printf("5\n");
continue;
}
solve(n-);
}
return ;
}
湘潭校赛 Hard Wuxing的更多相关文章
- 湘潭校赛 Easy Wuxing
Easy Wuxing Accepted : 25 Submit : 124 Time Limit : 1000 MS Memory Limit : 65536 KB 题目描述 “五行”是中国 ...
- 湘潭校赛 Bob's Problem
Bob's Problem Accepted : 18 Submit : 115 Time Limit : 1000 MS Memory Limit : 65536 KB 题目描述 Bob今 ...
- 2019湘潭校赛 G(并查集)
要点 题目传送 题目本质是每个点必属于两个集合中的一个,伴随的性质是:如果一个人说别人true,则他们一定属于同一阵营:如果说别人fake,一定不属于同一阵营. 每个点拆为\(i\)和\(i + n\ ...
- 2019湘潭校赛 H(dp)
题目传送 dp是常规的:\(m^2\)的预处理:把位置存进vector然后\(O(1)\)算出想要的:WA点:要注意特意设置一下val[i][v.size()]=0,即全天都放鸽子则花费时间为0. # ...
- 2019湘潭校赛 E(答案区间维护)
题目传送 思路是始终维护西瓜数量的区间,即L代表目前可以达到的最少的,R是最多的,然后判断一下. #include <bits/stdc++.h> using namespace std; ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- SCNU省选校赛第二场B题题解
今晚的校赛又告一段落啦,终于"开斋"了! AC了两题,还算是满意的,英语还是硬伤. 来看题目吧! B. Array time limit per test 2 seconds me ...
- 2014上半年acm总结(1)(入门+校赛)
大一下学期才开始了acm,不得不说有一点迟,但是acm确实使我的生活充实了很多,,不至于像以前一样经常没事干= = 上学期的颓废使我的c语言学的渣的一笔..靠考前突击才基本掌握了语法 寒假突然醒悟, ...
- 2017CUIT校赛-线上赛
2017Pwnhub杯-CUIT校赛 这是CUIT第十三届校赛啦,也是我参加的第一次校赛. 在被虐到崩溃的过程中也学到了一些东西. 这次比赛是从5.27早上十点打到5.28晚上十点,共36小时,中间睡 ...
随机推荐
- Day 14 列表推导式、表达器、内置函数
一. 列表推导式# l1 = []# for i in range(1,11):# l1.append(i)# print(l1)# #输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, ...
- sql语句_2
数据表如下 一个user_id对应多个user_name,现在要求是:如果某个用户对应的user_name中存在一个a,打印user_id,a出来:如果不存在,打印user_id,0.打印时候user ...
- PHP之旅3 php数组以及遍历数组 以及each() list() foreach()
php的数组的定义 <?php //php中定义数组时可以通过索引直接进行赋值: $mArr[0]="哈哈"; $mArr[1]=70; $mArr[2]='haha'; e ...
- 【OpenCV3】threshold()函数详解
threshold()函数源码 double cv::threshold( InputArray _src, OutputArray _dst, double thresh, double maxva ...
- 杭电OJ之2020-2029(C语言版)
2020. 绝对值排序 题目 Problem Description 输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. Inpu ...
- Java多线程——死锁
当一个线程永远地持有一个锁,并且其他线程都尝试获得这个锁时,那么他永远被阻塞,当线程A持有锁L并想获得锁M的同时,线程B持有锁M并同时尝试获得锁L时,那么两个线程将永远的等待下去,这中情况就是简单的死 ...
- redis集群配置及运行命令(windows和centos)附Python测试范例代码
表示配置主服务器器的IP和端口 slaveof <masterip> <masterport> # 设置slave是否是只读的.从2.6版起,slave默认是只读的. slav ...
- 第8章—使用Spring Web Flow—Spring Web Flow的配置
Spring中配置Web Flow Spring Web Flow 是 Spring 的一个子项目,其最主要的目的是解决跨越多个请求的.用户与服务器之间的.有状态交互问题,比较适合任何比较复杂的.有状 ...
- CentOS6.5下Ambari安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)
第一步: Ambari安装之Ambari安装前准备(CentOS6.5)(一) 第二步: Ambari安装之部署本地库(镜像服务器)(二) 第三步: Ambari安装之安装并配置Ambari-serv ...
- 关联更新 Update
Update a set a.Manage_FunctID=b.Manage_FunctID From Manage_PageUrl a Left join Manage_ButtonBar ...
