Gdut Count
11582: Gdut Count
时间限制: 1 Sec 内存限制: 128 MB
提交: 4 解决: 3
[提交] [状态] [命题人:admin]
题目描述
某天奶牛想要数一数有多少头奶牛,以一种特殊的方式:
第一头奶牛为1号,第二头奶牛为2号,第三头奶牛之后,假如当前奶牛是第n头,那么他的编号就是2倍的第n-2头奶牛的编号加上第n-1头奶牛的编号再加上自己当前的n的三次方为自己的编号.
现在Farmer John想知道,第n头奶牛的编号是多少,估计答案会很大,你只要输出答案对于123456789取模.
输入
接下来T行,每行有一个正整数n,表示有n头奶牛 (n>=3)
其中,T=10^4,n<=10^18
输出
样例输入
复制样例数据
5 3 6 9 12 15
样例输出
31 700 7486 64651 527023
#include <bits/stdc++.h>using namespace std; typedef long long ll; const int maxn=6; const ll mod=123456789; struct matrix{ll q[maxn][maxn];matrix(){memset(q,0,sizeof(q));}void init(){for(int i=0;i<maxn;i++)for(int j=0;j<maxn;j++)q[i][j]=(i==j);}matrix operator+(const matrix &x)const{matrix s;for(int i=0;i<6;i++){for(int j=0;j<6;j++){s.q[i][j]=(q[i][j]+x.q[i][j])%mod;}}return s;}matrix operator*(const matrix &x)const{matrix s;for(int i=0;i<6;i++){for(int j=0;j<6;j++){for(int k=0;k<6;k++){s.q[i][j]=(s.q[i][j]+(q[i][k]*x.q[k][j])%mod)%mod;}}}return s;}matrix operator^(const ll &x)const{matrix dis,now=(*this);dis.init();ll cur=x;while(cur){if(cur&1)dis=dis*now;now=now*now;cur>>=1;}return dis;} }; int T; ll n; matrix t,s,v; int main() {cin>>T;t.q[0][0]=1,t.q[0][1]=2,t.q[0][2]=1,t.q[0][3]=0,t.q[0][4]=0,t.q[0][5]=0;t.q[1][0]=1,t.q[1][1]=0,t.q[1][2]=0,t.q[1][3]=0,t.q[1][4]=0,t.q[1][5]=0;t.q[2][0]=0,t.q[2][1]=0,t.q[2][2]=1,t.q[2][3]=3,t.q[2][4]=3,t.q[2][5]=1;t.q[3][0]=0,t.q[3][1]=0,t.q[3][2]=0,t.q[3][3]=1,t.q[3][4]=2,t.q[3][5]=1;t.q[4][0]=0,t.q[4][1]=0,t.q[4][2]=0,t.q[4][3]=0,t.q[4][4]=1,t.q[4][5]=1;t.q[5][0]=0,t.q[5][1]=0,t.q[5][2]=0,t.q[5][3]=0,t.q[5][4]=0,t.q[5][5]=1;v.q[0][0]=2,v.q[1][0]=1,v.q[2][0]=27,v.q[3][0]=9,v.q[4][0]=3,v.q[5][0]=1;while(T--){cin>>n;if(n==1){cout<<1<<endl;continue;}if(n==2){cout<<2<<endl;continue;}s=t^(n-2);s=s*v;cout<<s.q[0][0]%mod<<endl;}return 0; }
转载于:https://www.cnblogs.com/czy-power/p/10551546.html
Gdut Count相关推荐
- 2020 GDUT Rating Contest II (Div. 2) A. Fence Planning
来源 codeforces 2020 GDUT Rating Contest II (Div. 2) CF链接 题目: Farmer John's N cows, conveniently numbe ...
- 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)
1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 2774 Solved: 1230 [Submit ...
- LeetCode刷题记录6——696. Count Binary Substrings(easy)
LeetCode刷题记录6--696. Count Binary Substrings(easy) 目录 LeetCode刷题记录6--696. Count Binary Substrings(eas ...
- c++关于map的find和count的使用
使用count,返回的是被查找元素的个数.如果有,返回1:否则,返回0.注意,map中不存在相同元素,所以返回值只能是1或0. 使用find,返回的是被查找元素的位置,没有则返回map.end(). ...
- 递归/归并:count of smaller numbers求逆序数
已知数组nums,求新数组count,count[i]代表了在nums[i]右侧且比 nums[i]小的元素个数. 例如: nums = [5, 2, 6, 1], count = [2, 1, 1, ...
- bzoj 2588 Spoj 10628. Count on a tree (可持久化线段树)
Spoj 10628. Count on a tree Time Limit: 12 Sec Memory Limit: 128 MB Submit: 7669 Solved: 1894 [Sub ...
- windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题
在Windows7下调用vs2013生成的Caffe静态库时经常会提示Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer t ...
- 1093 Count PAT‘s
这题出现在"活用递推"专题下面,所谓递推就是这一步的结果和上一步的结果有直接联系.对于本题来说,从左到右,记到当前位置,一共出现的P的个数,如果当前位置是P,则个数就是上一位的加1 ...
- Mybatis中Oracle和Mysql的Count字段问题
Mybatis中Oracle和Mysql的Count字段问题 我们在进行项目开发时经常会碰到查询总数的问题,所以我们直接是用select count(1) from table来进行查询.那么在Myb ...
最新文章
- VTK:几何对象之QuadraticHexahedron
- LoadPostData 的一些注意事项
- ABP vNext微服务架构详细教程——分布式权限框架(上)
- 数学生物学:生命是数字游戏
- 数据挖掘肿瘤预测_喜欢临床预测模型|SEER数据挖掘的期刊有哪些
- 《跟唐老师学习云网络》 - ip命令
- ThinkPHP3.2.3 语言包切换中英文切换
- WordPress建立数据库连接时出错解决办法
- 运用Excel实现描述性统计分析
- 【cooper】深度学习入门:基于Python的理论与实现(鱼书)_个人读书笔记
- dategurd oracle_Oracle Data Guard
- 十二步教你学会3d游戏建模,成功入行
- How to change exchange rate in miro manually?
- 将正式数据库中的表与测试库同步
- 为什么模电这么难学?一文带你透彻理解模电
- JQ数据库查询时间转换
- 为什么深度学习都在用python,你知道吗
- mysql 截断多个表_如何从MySQL数据库中截断所有表?
- c语言实现cgi之文件上传和下载
- 解决:el-table组件中设置show-overflow-tooltip属性,数据过多时闪烁不显示不能复制问题。