• 蓝桥杯打卡Day8



    文章目录

    • C翻转
    • 矩阵幂

    一、C翻转IO链接

    本题思路:本题需要找出顺时针旋转和逆时针旋转的规律,然后就可以解决该问题。

    矩阵顺时针90°旋转规律:列号变为行号,(n-行号-+1)变为列号 规律:a[i][j]=b[j][n-i+1];

    矩阵逆时针90°旋转规律:行号变为列号,(n-行号+1)变为行号,规律:a[i][j]=b[n-j+1][i];

    1. #include
    2. constexpr int N=8;
    3. int g[N][N];
    4. int tmp[N][N];//用来存储旋转后的数组元素
    5. int main()
    6. {
    7. std::ios::sync_with_stdio(false);
    8. std::cin.tie(nullptr);std::cout.tie(nullptr);
    9. for(int i=0;i<5;i++)
    10. for(int j=0;j<5;j++)
    11. std::cin>>g[i][j];
    12. int op,n;//op代表是往哪个方向进行旋转,n表示旋转的个数
    13. int x,y;
    14. std::cin>>op>>n>>x>>y;
    15. //顺时针
    16. if(op==1){
    17. for(int i=0;i
    18. for(int j=0;j//列号变为行号,(n-行号-+1)变为列号 规律:a[i][j]=b[j][n-i+1];
    19. tmp[j][i]=g[x-1+n-1-i][y-1+j];
    20. }
    21. //逆时针
    22. else if(op==2){
    23. for(int i=0;i
    24. for(int j=0;j//行号变为列号,(n-行号+1)变为行号,规律:a[i][j]=b[n-j+1][i];
    25. tmp[n-1-j][i]=g[x-1+i][y-1+j];
    26. }
    27. for(int i=0;i
    28. for(int j=0;j
    29. g[i+x-1][j+y-1]=tmp[i][j];
    30. for(int i=0;i<5;i++){
    31. for(int j=0;j<5;j++)
    32. std::cout<" ";
    33. std::cout<
    34. }
    35. return 0;
    36. }

    二、矩阵幂IO链接

    本题思路:本题是矩阵乘法的模板题,矩阵乘法中第一个矩阵的列要等于第二个矩阵的行

    一个m∗n的的A矩阵,和一个n∗p的B矩阵相乘,将得到一个m∗p的矩阵C 。

    1. #include
    2. constexpr int N=15;
    3. int n,k;
    4. int g[N][N],p[N][N];
    5. int tmp[N][N];
    6. void mul()
    7. {
    8. memset(tmp,0,sizeof tmp);
    9. for(int i=1;i<=n;i++)
    10. for(int j=1;j<=n;j++){
    11. int sum=0;
    12. for(int k=1;k<=n;k++)//矩阵的乘法:第一个矩阵的列需要与第二个矩阵的行相乘
    13. sum+=g[i][k]*p[k][j];
    14. tmp[i][j]=sum;
    15. }
    16. memcpy(g,tmp,sizeof(tmp));
    17. }
    18. int main()
    19. {
    20. std::ios::sync_with_stdio(false);
    21. std::cin.tie(nullptr);std::cout.tie(nullptr);
    22. std::cin>>n>>k;
    23. for(int i=1;i<=n;i++)
    24. for(int j=1;j<=n;j++)
    25. std::cin>>g[i][j];
    26. memcpy(p,g,sizeof(g));
    27. for(int j=1;jmul();
    28. for(int i=1;i<=n;i++){
    29. for(int j=1;j<=n;j++)
    30. std::cout<" ";
    31. std::cout<
    32. }
    33. return 0;
    34. }

  • 相关阅读:
    VUE必知必会
    vue 免费的每天不限次数的调用天气接口
    废水含镍如何处理
    Linux 内存泄漏检测的基本原理
    SSM框架学习——Spring之核心容器总结
    Integer 缓存机制
    【Linux篇】第十七篇——信号量
    QT社团管理系统
    C++从0吃透string类
    多位大佬合力讲解23种设计模式,这不是轻松拿下
  • 原文地址:https://blog.csdn.net/qq_67458830/article/details/132844946