2014 ACM/ICPC Asia Regional Xi'an Online 233 Matrix,hdu 5015
来源:互联网 发布:unity3d小游戏源码 编辑:程序博客网 时间:2024/05/01 07:37
比赛的时候若是这题过了就进前50
刚开始的时候大家的思路都以为是找规律的题目,于是再推公式,此外还发现类似于杨辉三角。于是又去套杨辉三角的通项去求。
于是TLE了无数次。(每次取范围的最大值也要3s多)。
对于明显的矩阵样子,其实可以转化为矩阵的运算,每一行的转移。就是对一个转移矩阵的幂运算。然后再用快速矩阵幂即可。
A:
10 0 0 1
10 1 0 1
10 1 1 1
0 0 0 1
B:
23
0
0
3
C=A^M *B,ans=C[N]
教训:对于时间限制,即便是最大数据也要秒出才行,不要以为刚刚好够就可以。矩阵的妙用无处不在···~~~~
#pragma comment(linker, "/STACK:1024000000,1024000000") #include<stdio.h>#include<string>typedef __int64 LL;#define INF 10000007#define MAX 100000int N,M;LL A[12][12];//initLL B[12];//initLL C[12][12];//ansLL T[12][12];//tempLL D[12][12];void matrix(LL (*a)[12],LL (*b)[12],LL (*c)[12]){int i,j,k;LL sum;for(i=0;i<=N+1;i++){for(j=0;j<=N+1;j++){sum=0;for(k=0;k<=N+1;k++)sum=sum+(a[i][k]*b[k][j])%INF,sum%=INF;c[i][j]=sum;}}}//刚开始连这个都出错。void Cal(){//memcpy(C,A,sizeof(A));int i,j,k;k=M;while(k){i=k&1;while(i==0){matrix(A,A,T);memcpy(A,T,sizeof(T));k>>=1;i=k&1;}matrix(C,A,T);memcpy(C,T,sizeof(T));matrix(A,A,T);//快速算完后还要再乘一次到下一位,C刚开始设置为单位矩阵memcpy(A,T,sizeof(T));k>>=1;}/*for(i=0;i<=N+1;i++){for(j=0;j<=N+1;j++)printf("%d ",C[i][j]);printf("\n");}*/for(i=0;i<=N+1;i++){LL sum=0;for(j=0;j<=N+1;j++)sum=sum+(C[i][j]*B[j])%INF,sum%=INF;A[0][i]=sum;}printf("%d\n",A[0][N]);}int main() {while(scanf("%d%d",&N,&M)!=EOF){int i,j;for(i=1;i<=N;i++)scanf("%d",B+i);B[i]=3;B[0]=23;memset(A,0,sizeof(A));memset(C,0,sizeof(C));for(i=0;i<=N;i++) A[i][0]=10,A[i][N+1]=1,C[i][i]=1;//单位矩阵C[i][i]=1;A[N+1][N+1]=1;for(i=1;i<N+1;i++)for(j=1;j<=i;j++)A[i][j]=1;/*for(i=0;i<=N+1;i++){for(j=0;j<=N+1;j++)printf("%d ",A[i][j]);printf("\n");}*/Cal();}return 0;}
0 0
- hdu 5015 233 Matrix 2014 ACM/ICPC Asia Regional Xi'an Online 矩阵快速幂
- HDU 5015 233 Matrix / 2014 ACM/ICPC Asia Regional Xi'an Online
- 2014 ACM/ICPC Asia Regional Xi'an Online 233 Matrix,hdu 5015
- hdu 5015 233 Matrix 矩阵快速幂 2014 ACM/ICPC Asia Regional Xi'an Online
- HDU 5015 2014 ACM/ICPC Asia Regional Xi'an Online 233 Matrix
- Hdu 5015 233 Matrix[矩阵](2014 ACM/ICPC Asia Regional Xi'an Online )
- hdu 1009 233 Matrix 矩阵构造 --2014 ACM/ICPC Asia Regional Xi'an Online
- HDU5015 233 Matrix (2014 ACM/ICPC Asia Regional Xi'an Online)
- 2014 ACM/ICPC Asia Regional Xi'an Online 小记
- 2014 ACM/ICPC Asia Regional Xi'an Online
- 2014 ACM/ICPC Asia Regional Xi'an Online(hdu 5007 - hdu 5017)
- hdu 5012 Dice 2014 ACM/ICPC Asia Regional Xi'an Online bfs
- hdu 5014 Number Sequence 2014 ACM/ICPC Asia Regional Xi'an Online 数论
- HDU 5014 Number Sequence 贪心 2014 ACM/ICPC Asia Regional Xi'an Online
- hdu 5014 Number Sequence 找规律 | 贪心 2014 ACM/ICPC Asia Regional Xi'an Online
- hdu 5008(2014 ACM/ICPC Asia Regional Xi'an Online ) Boring String Problem(后缀数组&二分)
- hdu 5011 Game Nim博弈 2014 ACM/ICPC Asia Regional Xi'an Online
- hdu 5007 Post Robot 水题 2014 ACM/ICPC Asia Regional Xi'an Online
- Plan 开学第二周
- Cocos2d-x v2.2.0《萌妹斗地主》 服务端部署笔记
- 奈奎斯特 带宽 码元 比特
- 剖析ActionBar的基本用法
- dataguard之备库
- 2014 ACM/ICPC Asia Regional Xi'an Online 233 Matrix,hdu 5015
- HTML - meta标签自动跳转页面
- 2014西安网络赛1009||hdu5015 矩阵
- SharePoint 判断用户是否在字段"人员和组"里面
- SharePoint 2013 关于自定义显示列表表单的bug
- 创建数据库登陆账号
- stm32f4 FSMC
- SharePoint 2013 操作文档库ECB菜单
- 蜂窝网格算法