Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo [矩阵快速幂]
来源:互联网 发布:在淘宝怎么搜索精仿鞋 编辑:程序博客网 时间:2024/05/29 14:32
题目无聊到求多次快速幂…
#pragma comment(linker, "/STACK:102400000,102400000")#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<vector>#include<map>#include<string>#include<iostream>using namespace std;using namespace std;typedef long long ll;const ll mod=1000000007;int n;ll m;struct Matrix{ ll mp[20][20]; Matrix() { memset(mp,0,sizeof(mp)); }};Matrix mul(Matrix a,Matrix b){ int i,j,k; Matrix c; for(i=0; i<n; i++) { for(j=0; j<n; j++) { c.mp[i][j]=0; for(k=0; k<n; k++) { c.mp[i][j]=(c.mp[i][j]+a.mp[i][k]*b.mp[k][j]%mod)%mod; } } } return c;}Matrix mypow(Matrix t,ll x){ Matrix c; for(int i=0; i<n; i++) c.mp[i][i]=1; while(x) { if(x&1) c=mul(c,t); t=mul(t,t); x>>=1; } return c;}long long a[1024],b[1024],c[1024];int main(){ int t; long long k; n=20; scanf("%d %lld",&t,&k); for(int i=0;i<t;i++) { scanf("%lld%lld%lld",a+i,b+i,c+i); } Matrix A; A.mp[0][0]=1; for(int p=0;p<t;p++) { Matrix B; for(int i=0;i<=c[p];i++) { if(i==0) { B.mp[0][0]=B.mp[1][0]=1; } else //if(i<=c[p]) { B.mp[i-1][i]=B.mp[i][i]=B.mp[i+1][i]=1; } } //if(a[p]==k) continue; //A =mul(A,B); //if(min(k,b[p])-a[p]-1<=0) continue; if(p) for(int i=min(c[p-1],c[p])+1;i<n;i++) A.mp[0][i]=0; B=mypow(B,min(k,b[p])-a[p]); A=mul(A,B); } printf("%lld\n",A.mp[0][0]); return 0;}
阅读全文
0 0
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo dp+矩阵快速幂
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo(矩阵快速幂)
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo(矩阵快速幂)
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo [矩阵快速幂]
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo 矩阵快速幂+dp
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo dp+矩阵快速幂
- CF round#420 div.2 E Okabe and El Psy Kongroo【矩阵快速幂】
- 【动态规划21】Codeforces Round #420 821E Okabe and El Psy Kongroo(dp+矩阵快速幂)
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo
- Codeforces Round #420 (Div. 2) 821E. Okabe and El Psy Kongroo
- CF-Codeforces Round #420 (Div. 2)-E-Okabe and El Psy Kongroo
- DP 矩阵快速幂 Okabe and El Psy Kongroo:CodeForces
- Codeforces 821E Okabe and El Psy Kongroo【Dp+矩阵快速幂】套路题
- Codeforces 821E Okabe and El Psy Kongroo(Dp+矩阵快速幂)
- Codeforces-821E Okabe and El Psy Kongroo(矩阵快速幂+dp)
- codeforce#420 E. Okabe and El Psy Kongroo(图论+矩阵快速幂)
- Codeforeces #420 E. Okabe and El Psy Kongroo 递推加矩阵快速幂
- 【codefoces821E】 Okabe and El Psy Kongroo【Dp+矩阵快速幂】
- 梯度提升树GBDT原理
- ps常用功能小结
- LTE学习笔记--LTE整体架构和协议架构概述
- cp覆盖时,不提示的用法
- Spring整合CXF之发布WebService服务
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo [矩阵快速幂]
- 判断单链表是否带环
- 【论文阅读】Generating Natural Answers by Incorporating Copying and Retrieving Mechanisms in Sequence-to-S
- ThreadLocall类分析
- html-css 等常用
- tcp和udp通讯协议
- xgboost原理
- JZOJ__Day 1:【普及模拟】PLES
- 自定义控件,设置其控件大小