博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu2276 快速矩阵幂
阅读量:6449 次
发布时间:2019-06-23

本文共 1353 字,大约阅读时间需要 4 分钟。

1 #include
2 #include
3 char s[105]; 4 int ans[105],temp[105],temp1[105][105],a[105][105]; 5 int main() 6 { 7 int i,j,k,n,m; 8 while (~scanf("%d",&m)) 9 {10 getchar();11 gets(s); n=strlen(s);12 for (i=1;i<=n;i++) ans[i]=s[i-1]-'0';13 memset(a,0,sizeof(a));14 for (i=1;i<=n;i++)15 if (i!=n) a[i][i]=a[i][i+1]=1;16 else a[i][1]=a[i][n]=1;17 while (m!=0)18 {19 if (m%2==1)20 {21 for (j=1;j<=n;j++)22 {23 temp[j]=0;24 for (i=1;i<=n;i++) temp[j]=(temp[j]+ans[i]*a[i][j])%2;25 }26 for (i=1;i<=n;i++) ans[i]=temp[i];27 }28 m/=2;29 {30 memset(temp1,0,sizeof(temp1));31 for (i=1;i<=n;i++)32 for (j=1;j<=n;j++)33 {34 for (k=1;k<=n;k++)35 temp1[i][j]=(temp1[i][j]+a[i][k]*a[k][j])%2;36 }37 for (i=1;i<=n;i++)38 for (j=1;j<=n;j++) a[i][j]=temp1[i][j];39 }40 }41 for (i=1;i<=n;i++) printf("%d",ans[i]);42 printf("\n");43 } 44 }

转载于:https://www.cnblogs.com/xiao-xin/articles/3848732.html

你可能感兴趣的文章
查询指定名称的文件
查看>>
批处理文件
查看>>
1.每次按一下pushbutton控件,切换图片?
查看>>
Python 嵌套列表解析
查看>>
[GXOI/GZOI2019]旧词——树链剖分+线段树
查看>>
android 补间动画的实现
查看>>
2017年广东省ACM省赛(GDCPC-2017)总结
查看>>
第十届蓝桥杯B组C++题目详解和题型总结
查看>>
树的存储结构2 - 数据结构和算法42
查看>>
函数的嵌套调用
查看>>
OC中使用 static 、 extern、 const使用
查看>>
简单理解函数回调——同步回调与异步回调
查看>>
POJ 1007
查看>>
Android 多个Activity 跳转及传参
查看>>
中文文本预处理流程(带你分析每一步)
查看>>
anroid 广播
查看>>
AJAX POST&跨域 解决方案 - CORS
查看>>
如何设计企业内部的数据平台?
查看>>
关于最小生成树中的kruskal算法中判断两个点是否在同一个连通分量的方法总结...
查看>>
【译】Linux系统和性能监控(4)
查看>>