“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛 1010 Count

思路:矩阵快速幂。推一下初始矩阵就好了
#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mp make_pair
#define pb push_back
using namespace std;
LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}
LL lcm(LL a,LL b){return a/gcd(a,b)*b;}
LL powmod(LL a,LL b,LL MOD){LL ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}
const int N = 2e5 +11;
const LL mod=123456789;
LL A[6][6]={
{0,2,0,0,0,0},
{1,1,0,0,0,0},
{0,1,1,0,0,0},
{0,0,3,1,0,0},
{0,0,3,2,1,0},
{0,0,1,1,1,1}
};
LL P[6];
struct uzi
{
LL a[6][6];
void res(){
memset(a,0,sizeof a);
}
};
int cnt;
uzi operator *(const uzi &x,const uzi &y){
uzi ans;
ans.res();
for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
LL mid=0;
for(int k=0;k<6;k++){
mid+=x.a[i][k]*y.a[k][j]%mod;
mid%=mod;
}
ans.a[i][j]=mid;
}
}
return ans;
}
LL POW(LL n){
uzi ans,mid;
ans.res();
mid.res();
for(int i=0;i<6;i++)ans.a[i][i]=1;
for(int i=0;i<6;i++)for(int j=0;j<6;j++)mid.a[i][j]=A[i][j];
while(n){
if(n%2){
ans=mid*ans;
}
mid=mid*mid;
n/=2;
}
LL sum=0;
for(int i=0;i<6;i++){
sum=sum+P[i]*ans.a[i][0]%mod;
sum%=mod;
}
return sum;
}
int main(){
ios::sync_with_stdio(false);
P[0]=1,P[1]=2,P[2]=27,P[3]=9,P[4]=3,P[5]=1;
int t;
for(cin>>t;t;t--){
LL n;
cin>>n;
cout<<POW(n-1)<<endl;
}
return 0;
}
“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛 1010 Count的更多相关文章
- HDU 6467.简单数学题-数学题 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
简单数学题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- HDU 6464.免费送气球-动态开点-权值线段树(序列中第first小至第second小的数值之和)(感觉就是只有一个状态的主席树) (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
免费送气球 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- HDU 6463.超级无敌简单题-卡边界的暴力 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
超级无敌简单题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- HDU 6462.人类史上最大最好的希望事件-递推 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
人类史上最大最好的希望事件 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- HDU 6467 简单数学题 【递推公式 && O(1)优化乘法】(广东工业大学第十四届程序设计竞赛)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6467 简单数学题 Time Limit: 4000/2000 MS (Java/Others) M ...
- HDU 6464 免费送气球 【权值线段树】(广东工业大学第十四届程序设计竞赛)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6464 免费送气球 Time Limit: 2000/1000 MS (Java/Others) M ...
- HDU 6470 Count 【矩阵快速幂】(广东工业大学第十四届程序设计竞赛 )
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6470 Count Time Limit: 6000/3000 MS (Java/Others) ...
- (未完结)“文远知行杯”GDET第十四届竞赛(网络赛共10题,仅整理出6题)
刚开学没多久就打了一个网络赛,通过这次网络赛我是发现我是真的菜... 放假前校赛的排名让我有些自满,寒假丝毫没有接触ACM,一直沉迷于Steam,这个真的值得好好反省. 虽然现在大一课有点多,在学校也 ...
- 2016 "Bird Cup" ICPC7th@ahstu--“波导杯”安徽科技学院第七届程序设计大赛
"波导杯"安徽科技学院第七届程序设计大赛 Contest - 2016 "Bird Cup" ICPC7th@ahstu Start time: 2016-0 ...
随机推荐
- 背景图片固定不随页面上下滚动而滚动 ,属性 background-attachment
<div id="testimonials-section" class="text-center"> </div> css: #tes ...
- xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH ...
- dede 5.7 任意用户重置密码前台
返回了重置的链接,还要把&删除了,就可以重置密码了 结果只能改test的密码,进去过后,这个居然是admin的密码,有点头大,感觉这样就没有意思了 我是直接上传的一句话,用菜刀连才有乐趣 ...
- vue diff 算法学习
function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) { let oldStartIdx ...
- iOS开发基础-图片切换(4)之懒加载
延续:iOS开发基础-图片切换(3),对(3)里面的代码用懒加载进行改善. 一.懒加载基本内容 懒加载(延迟加载):即在需要的时候才加载,修改属性的 getter 方法. 注意:懒加载时一定要先判断该 ...
- python第九章:面向对象--小白博客
面向对象介绍 一.面向对象和面向过程 面向过程:核心过程二字,过程即解决问题的步骤,就是先干什么后干什么 基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式 优点:复杂的过程流程化 缺点 ...
- OI用语一览表
术语 含义 A/AC 通过 AAA树 Top-tree ABC AtCoder Beginner Contest AFO 退役 AG 银牌 AGC AtCoder Grand Contest AK 通 ...
- JAVA关键字及作用
---恢复内容开始--- Java关键字及其作用 一. 总览: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends fina ...
- openstack搭建之-horizon配置(14)
一.ctrl控制节点安装horizon #安装软件yum install openstack-dashboard -y vim /etc/openstack-dashboard/local_setti ...
- [系统软件]Ubuntu 18.04 LTS 安装 搜狗输入法,谷歌拼音
1. 讲什么 本文主要讲述在Ubuntu18.04 LTS版本中安装搜狗输入法.谷歌拼音输入法的过程. 2. 为什么讲 1. Ubuntu电脑自带Ibus输入法+拼音/五笔,但是用了一段时间之后发现经 ...