11582: Gdut Count

时间限制: 1 Sec  内存限制: 128 MB
提交: 4  解决: 3
[提交] [状态] [命题人:admin]

题目描述

Farmer John有n头奶牛.
某天奶牛想要数一数有多少头奶牛,以一种特殊的方式:
第一头奶牛为1号,第二头奶牛为2号,第三头奶牛之后,假如当前奶牛是第n头,那么他的编号就是2倍的第n-2头奶牛的编号加上第n-1头奶牛的编号再加上自己当前的n的三次方为自己的编号.
现在Farmer John想知道,第n头奶牛的编号是多少,估计答案会很大,你只要输出答案对于123456789取模.

输入

第一行输入一个T,表示有T组样例
接下来T行,每行有一个正整数n,表示有n头奶牛 (n>=3)
其中,T=10^4,n<=10^18

输出

共T行,每行一个正整数表示所求的答案

样例输入

复制样例数据

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相关推荐

  1. 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 ...

  2. 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2774  Solved: 1230 [Submit ...

  3. LeetCode刷题记录6——696. Count Binary Substrings(easy)

    LeetCode刷题记录6--696. Count Binary Substrings(easy) 目录 LeetCode刷题记录6--696. Count Binary Substrings(eas ...

  4. c++关于map的find和count的使用

    使用count,返回的是被查找元素的个数.如果有,返回1:否则,返回0.注意,map中不存在相同元素,所以返回值只能是1或0. 使用find,返回的是被查找元素的位置,没有则返回map.end(). ...

  5. 递归/归并:count of smaller numbers求逆序数

    已知数组nums,求新数组count,count[i]代表了在nums[i]右侧且比 nums[i]小的元素个数. 例如: nums = [5, 2, 6, 1], count = [2, 1, 1, ...

  6. 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 ...

  7. 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 ...

  8. 1093 Count PAT‘s

    这题出现在"活用递推"专题下面,所谓递推就是这一步的结果和上一步的结果有直接联系.对于本题来说,从左到右,记到当前位置,一共出现的P的个数,如果当前位置是P,则个数就是上一位的加1 ...

  9. Mybatis中Oracle和Mysql的Count字段问题

    Mybatis中Oracle和Mysql的Count字段问题 我们在进行项目开发时经常会碰到查询总数的问题,所以我们直接是用select count(1) from table来进行查询.那么在Myb ...

最新文章

  1. VTK:几何对象之QuadraticHexahedron
  2. LoadPostData 的一些注意事项
  3. ABP vNext微服务架构详细教程——分布式权限框架(上)
  4. 数学生物学:生命是数字游戏
  5. 数据挖掘肿瘤预测_喜欢临床预测模型|SEER数据挖掘的期刊有哪些
  6. 《跟唐老师学习云网络》 - ip命令
  7. ThinkPHP3.2.3 语言包切换中英文切换
  8. WordPress建立数据库连接时出错解决办法
  9. 运用Excel实现描述性统计分析
  10. 【cooper】深度学习入门:基于Python的理论与实现(鱼书)_个人读书笔记
  11. dategurd oracle_Oracle Data Guard
  12. 十二步教你学会3d游戏建模,成功入行
  13. How to change exchange rate in miro manually?
  14. 将正式数据库中的表与测试库同步
  15. 为什么模电这么难学?一文带你透彻理解模电
  16. JQ数据库查询时间转换
  17. 为什么深度学习都在用python,你知道吗
  18. mysql 截断多个表_如何从MySQL数据库中截断所有表?
  19. c语言实现cgi之文件上传和下载
  20. 解决:el-table组件中设置show-overflow-tooltip属性,数据过多时闪烁不显示不能复制问题。

热门文章

  1. ubuntu 16.04 更换国内源
  2. 哈尔滨工业大学2022春季学期CSAPP大作业
  3. ArcGIS基于DEM提取微流域单元(附练习数据下载)
  4. Android商城购物车页面实现
  5. AutoLISP 学习 (一)
  6. 网银转账或者其他业务操作时,提醒签名失败,请检查证书
  7. 纯净Windows镜像安装方法(无网卡和usb驱动)
  8. (9.26更新 老机福音,再创经典)Ghost_XP_战神 V9.5 老机优化版
  9. 如何将 DAT 转换为 MP4
  10. 如何用普通电脑去看3D电影