困难,。,真,,,不是太困难

的问题是,有一个矩阵运算优化

您有权发言权N*K矩阵A给K*N矩阵B(1<=N<=1000 && 1=<K<=6)。他们拿起了第一次骑马C矩阵,再算上C^(N*N)

当于

ABABABABABABAB...=(AB)^(N*N)

不如

A(BA)^(N*N-1)B

由于BA乘得K*K的矩阵,K是比較小的

  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <cstring>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <iostream>
  7. using namespace std;
  8. int a[1111][1111];
  9. int b[1111][1111];
  10. int c[1111][1111];
  11. int tmp[1111][1111];
  12. int sum[1111][1111];
  13. void TIMES(int K,int N,int M,int aa[][1111],int bb[][1111],int cc[][1111]){
  14. memset(tmp,0,sizeof(tmp));
  15. for(int i=1;i<=K;i++){
  16. for(int j=1;j<=M;j++){
  17. for(int k=1;k<=N;k++){
  18. tmp[i][j]=(tmp[i][j]+aa[i][k]*bb[k][j]%6)%6;
  19. }
  20. }
  21. }
  22. for(int i=1;i<=K;i++)
  23. for(int j=1;j<=M;j++)
  24. cc[i][j]=tmp[i][j]%6;
  25. }
  26. void quick(int cc[][1111],int mi,int n){
  27. for(int i=1;i<=n;i++)
  28. for(int j=1;j<=n;j++)
  29. if(i==j) sum[i][j]=1;
  30. else sum[i][j]=0;
  31. while(mi){
  32. if(mi&1)
  33. TIMES(n,n,n,cc,sum,sum);
  34. TIMES(n,n,n,cc,cc,cc);
  35. mi>>=1;
  36. }
  37. }
  38. int main(){
  39. #ifndef ONLINE_JUDGE
  40. freopen("G:/in.txt","r",stdin);
  41. //freopen("G:/myout.txt","w",stdout);
  42. #endif
  43. int N,K;
  44. while(~scanf("%d%d",&N,&K)){
  45. if(N==0 && K==0) return 0;
  46. for(int i=1;i<=N;i++){
  47. for(int j=1;j<=K;j++){
  48. scanf("%d",&a[i][j]);
  49. }
  50. }
  51. for(int i=1;i<=K;i++){
  52. for(int j=1;j<=N;j++){
  53. scanf("%d",&b[i][j]);
  54. }
  55. }
  56. TIMES(K,N,K,b,a,c);
  57. quick(c,N*N-1,K);
  58. TIMES(N,K,K,a,sum,sum);
  59. TIMES(N,K,N,sum,b,sum);
  60. int ans=0;
  61. for(int i=1;i<=N;i++)
  62. for(int j=1;j<=N;j++)
  63. ans+=sum[i][j];
  64. cout<<ans<<endl;
  65. }
  66. }

HDU更多的学校比赛9场 HDU 4965Fast Matrix Calculation【矩阵运算+数学技巧】的更多相关文章

  1. HDU多校赛第9场 HDU 4965Fast Matrix Calculation【矩阵运算+数学小知识】

    难度上.,,确实...不算难 问题是有个矩阵运算的优化 题目是说给个N*K的矩阵A给个K*N的矩阵B(1<=N<=1000 && 1=<K<=6),先把他们乘起 ...

  2. hdu oj 1285 确定比赛名次

    hdu oj 1285 确定比赛名次 题目: 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  3. hdu 4965 Fast Matrix Calculation(矩阵高速幂)

    题目链接.hdu 4965 Fast Matrix Calculation 题目大意:给定两个矩阵A,B,分别为N*K和K*N. 矩阵C = A*B 矩阵M=CN∗N 将矩阵M中的全部元素取模6,得到 ...

  4. HDU 4965 Fast Matrix Calculation(矩阵高速幂)

    HDU 4965 Fast Matrix Calculation 题目链接 矩阵相乘为AxBxAxB...乘nn次.能够变成Ax(BxAxBxA...)xB,中间乘n n - 1次,这样中间的矩阵一个 ...

  5. i春秋CTF-“百度杯”CTF比赛 九月场 XSS平台

    “百度杯“CTF比赛 九月场 ###XSS平台   看了别人的wp才知道这里需要变数组引起报错然后百度信息收集,这一步在实战中我觉得是很有作用的,get到.       这里取百度rtiny,看别人w ...

  6. [i春秋]“百度杯”CTF比赛 十月场-Hash

    前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash  如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...

  7. "百度杯"CTF比赛 十月场——EXEC

    "百度杯"CTF比赛 十月场--EXEC 进入网站页面 查看源码 发现了vim,可能是vim泄露,于是在url地址输入了http://21b854b211034489a4ee1cb ...

  8. HDU 4940(杭电更多的学校#7 1006) Destroy Transportation system(到处乱混)

    职务地址:pid=4940">HDU 4940 当时这个题一看就看出来了是网络流的最小割.然后就一直在想建图. .然后突然发现,应该要让T集合的数目最少,不然仅仅要有两个,那这两个的每 ...

  9. [2019HDU多校第一场][HDU 6578][A. Blank]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题目大意:长度为\(n\)的数组要求分别填入\(\{0,1,2,3\}\)四个数中的任意一个,有 ...

随机推荐

  1. poj3662(二分+最短路)

    题目连接:http://poj.org/problem?id=3662 题意:有n个节点p条无向边,现在可以选择其中的任意K条免费,则花费为除了k条边后权值最大的一个,求最小花费多少. 分析:二分枚举 ...

  2. Windown安装Mysql安装图解

    一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”. 2.选择安装类型,有“Typical(默认)”.“Comp ...

  3. hadoop在实现kmeans算法——一个mapreduce实施

    写mapreduce程序实现kmeans算法.我们的想法可能是 1. 次迭代后的质心 2. map里.计算每一个质心与样本之间的距离,得到与样本距离最短的质心,以这个质心作为key,样本作为value ...

  4. Java Executor 框架

    Java Executor 框架 Executor框架是指java5中引入的一系列并发库中与executor相关的功能类,包括Executor.Executors. ExecutorService.C ...

  5. poj1236 有向图加边变成强连通图

    给我们一个有向图,有两个问题 1.最少要给多少个点发消息,才能使得所有的点都收到消息(消息可以随边传递) 2.最少需要多少条边才能使得图变成强连通图 对于一个强连通分量,可以当做一个点来考虑,所以我们 ...

  6. 《Javascript高级程序设计》读书笔记之对象创建

    <javascript高级程序设计>读过有两遍了,有些重要内容总是会忘记,写一下读书笔记备忘 创建对象 工厂模式 工厂模式优点:有了封装的概念,解决了创建多个相似对象的问题 缺点:没有解决 ...

  7. Xamarin Studio Android 配置

    原文:Xamarin Studio Android 配置 C#依托于mono平台可以实现Unix平台服务器端开发已经不是什么新鲜事了,而Xarmain公司(初始成员大多来自原Mono.MonoTouc ...

  8. QTP小应用一则

    昨天收到一个任务,将270多个视频文件按照统一的编码要求,转换为其他格式,而且给的转换器居然不能批量转换! 在痛苦地转换了30多个之后,我才想起来使用QTP的数据驱动测试方法可以解决这个问题! 于是我 ...

  9. HDU 3177 Crixalis&#39;s Equipment(贪婪)

    主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=3177 Problem Description Crixalis - Sand King used t ...

  10. 王立平--android发育,转让eclipse可选颜色

    android:background="@android:color/white" 版权声明:本文博主原创文章.博客,未经同意不得转载.