【复习29-30天】【我们一起60天准备考研算法面试(大全)-第三十二天 32/60】

news2024/9/24 15:20:11

专注 效率 记忆
预习 笔记 复习 做题

欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)
 
文章字体风格:
红色文字表示:重难点★✔
蓝色文字表示:思路以及想法★✔
 
如果大家觉得有帮助的话,感谢大家帮忙
点赞!收藏!转发!

本博客带大家一起学习,我们不图快,只求稳扎稳打。
由于我高三是在家自学的,经验教训告诉我,学习一定要长期积累,并且复习,所以我推出此系列。
只求每天坚持40分钟,一周学5天,复习2天
也就是一周学10道题
60天后我们就可以学完81道题,相信60天后,我们一定可以有扎实的代码基础!我们每天就40分钟,和我一起坚持下去吧!
qq群:878080619

第三十二天【考研408-数据结构(笔试)】

  • 二十六、位运算
    • 1. 位操作练习(北京大学考研机试题)
    • 2. 二进制数(北京邮电大学考研机试题)
  • 二十七、矩阵
    • 1. 旋转矩阵(北京航空航天大学考研机试题)
    • 2. 矩阵幂【矩阵相乘】(北京邮电大学考研机试题)
        • 两个矩阵相乘结果
    • 3. C翻转(北京邮电大学考研机试题)

二十六、位运算

1. 位操作练习(北京大学考研机试题)

在这里插入图片描述

本题的思路是:
把a右移1位,如果超界,&65535(也就是保留16位)

然后让a + (a未移动的值右移15位的值)
得到的就是循环移动的值了

#include<iostream>

using namespace std;

int main()
{
    int a,b;
    while(cin >> a >> b)
    {
        bool flag = false;
        for(int i = 0; i < 16;i++)
        {
            int t = a;
            a = (a << 1)&65535;
            a = a + (t>>15);
            if(a==b)
            {
                cout << "YES" << endl;
                flag = true;
            }
        }
        if(flag==false)
        {
            cout << "NO" << endl;
        }
    }
    
    return 0;
}

2. 二进制数(北京邮电大学考研机试题)

在这里插入图片描述
就是把10进制输出二进制
不输出前导0

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int main()
{
    unsigned int n;
    while (cin >> n)
    {
        string res;
        if (!n) res = "0";
        while (n) res += to_string(n & 1), n >>= 1;
        reverse(res.begin(), res.end());
        cout << res << endl;
    }

    return 0;
}

二十七、矩阵

1. 旋转矩阵(北京航空航天大学考研机试题)

在这里插入图片描述
这道题就是找规律
在这里插入图片描述

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

const int N = 10;

int n;

vector<vector<int>> rotate(vector<vector<int>> a)
{
    auto res = a;

    for (int i = 0; i < n; i ++ )
        for (int j = 0, k = n - 1; j < n; j ++, k -- )
            res[i][j] = a[k][i];

    return res;
}

int main()
{
    cin >> n;

    vector<vector<int>> a(n, vector<int>(n));
    auto b = a;

    for (int i = 0; i < n; i ++ )
        for (int j = 0; j < n; j ++ )
            cin >> a[i][j];

    for (int i = 0; i < n; i ++ )
        for (int j = 0; j < n; j ++ )
            cin >> b[i][j];

    for (int i = 0; i < 4; i ++ )
    {
        if (a == b)
        {
            cout << i * 90 << endl;
            return 0;
        }

        a = rotate(a);
    }

    puts("-1");
    return 0;
}

2. 矩阵幂【矩阵相乘】(北京邮电大学考研机试题)

在这里插入图片描述

两个矩阵相乘结果

两个矩阵a,b相乘得到一个新的矩阵c,新矩阵的第i行第j列的元素是a的第i行和b的第j列的对应元素相乘的求和。

    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            for(int k=0;k<n;k++)
                tmp[i][j]+=a[i][k]*b[k][j];

求矩阵的k次方

注意:1次方就是 矩阵乘单位矩阵

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=15;
int n,k;
int w[N][N];
// 将矩阵a和b相乘,结果存放到c中。 
void mul(int c[][N],int a[][N],int b[][N]){
    static int tmp[N][N];
    memset(tmp,0,sizeof tmp);
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            for(int k=0;k<n;k++)
                tmp[i][j]+=a[i][k]*b[k][j];
    memcpy(c,tmp,sizeof tmp); 
}

int main(){
    cin>>n>>k;
    // 读入原始矩阵 
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            cin>> w[i][j];
    // 将res初始化为单位矩阵 
    int res[N][N]={0};
    for(int i=0;i<n;i++) res[i][i]=1;
    while(k--) mul(res,res,w);
    // 输出结果矩阵 
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            cout<<res[i][j]<<" ";
        cout<<endl; 
    } 
    return 0;
}

3. C翻转(北京邮电大学考研机试题)

在这里插入图片描述

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 5;

int n;
int g[N][N];

void rotate(int x, int y, int m)
{
    int w[N][N];
    memcpy(w, g, sizeof g);

    for (int i = 0; i < m; i ++ )
        for (int j = 0, k = m - 1; j < m; j ++, k -- )
            w[i][j] = g[x + k][y + i];

    for (int i = 0; i < m; i ++ )
        for (int j = 0; j < m; j ++ )
            g[x + i][y + j] = w[i][j];
}

int main()
{
    for (int i = 0; i < 5; i ++ )
        for (int j = 0; j < 5; j ++ )
            cin >> g[i][j];

    int a, b, x, y;
    cin >> a >> b >> x >> y;
    x --, y -- ;

    if (a == 1) rotate(x, y, b);
    else
    {
        for (int i = 0; i < 3; i ++ )
            rotate(x, y, b);
    }

    for (int i = 0; i < 5; i ++ )
    {
        for (int j = 0; j < 5; j ++ )
            cout << g[i][j] << ' ';
        cout << endl;
    }

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/833525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对象拷贝初识mapstruct及与lombok的配置

项目中用到对象拷贝&#xff0c;做一个修改历史记录保存的功能&#xff0c;使用Spring AOP自定义注解实现修改记录的保存&#xff0c;历史记录表和业务表的字段差不多&#xff0c;保存的时候需要用到对象拷贝。下面是一些对象拷贝的工具&#xff0c;前3个都用过&#xff0c;这次…

某银行软件测试笔试题

&#xff08;时间90分钟&#xff0c;满分100分&#xff09; 考试要求&#xff1a;计算机相关专业试题 一、填空题&#xff08;每空1分&#xff0c;共10分&#xff09; 1. ______验证___是保证软件正确实现特定功能的一系列活动和过程。 2. 按开发阶段分&#xff0c;软件测试可…

HTTPS-RSA握手

RSA握手过程 HTTPS采用了公钥加密和对称加密结合的方式进行数据加密和解密 RSA握手是HTTPS连接建立过程中的一个关键步骤&#xff0c;用于确保通信双方的身份验证和生成对称加密所需的密钥 通过RSA握手过程&#xff0c;客户端和服务器可以协商出一个共享的对称密钥&#xff0c;…

操作系统——什么是操作系统

文章目录 操作系统的概念操作系统的特征并发和并行共享虚拟异步 操作系统的功能管理计算机系统的资源作为用户和计算机硬件之间的接口 操作系统的发展历程操作系统的运行环境CPU运行模式异常和中断系统调用 操作系统结构操作系统的引导虚拟机容器 操作系统的概念 操作系统是指…

安全渗透知识总结二

目录 一、html实体编码 1、Unicode字符编码 2、字符的数字表示 3、常见实体编码 4、url 协议 主机 http状态码 http常用的状态码 端口 常见协议端口 查询参数 锚点 url字符 urlcode字符 绝对url和相对url 二、字符编码 Ascll字符集 html字符集 html的url编码 …

2023年华数杯C题

C 题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c; 还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况&#xff0c;如抑郁、焦虑、 压力等&#xff0c;可能会对婴儿的认知、情感、社会行…

Docker-Compose编排与部署

目录 Docker Compose Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境 Docker Compose Docker Compose 的前身是 Fig&#xff0c;它是一个定义及运行多个 Dock…

【软考中项】系统集成项目管理工程师2023下半年报名考试攻略

软考中级系统集成项目管理工程师2023下半年考试时间&#xff1a; 2023年下半年软考中级系统集成项目管理工程师的考试时间为11月4日、5日。考试时间在全国各地一致&#xff0c;建议考生提前备考。共分两科&#xff0c;第一科基础知识考试具体时间为9:00到11:30&#xff1b;第二…

《信息系统项目管理师教程(第4版)》软考高级 第六章 项目管理概论知识点、思维导图整理

第六章 项目管理概论 考情分析 Part1 PMBOK的发展&#xff08;无考点&#xff09;Part2 项目基本要素 一、项目基础 1、独特的产品、服务或成果2、临时性工作3、项目驱动变更4、项目创造业务价值5、项目启动背景 &#xff08;与组织的战略目标和项目的业务价值关联&#xff09…

木马病毒怎么回事?带你深度分析了解木马病毒!

一、病毒简介 SHA256:3110f00c1c48bbba24931042657a21c55e9a07d2ef315c2eae0a422234623194 MD5:ae986dd436082fb9a7fec397c8b6e717 SHA1:31a0168eb814b0d0753f88f6a766c04512b6ef03 二、行为分析 老套路&#xff0c;火绒剑监控&#xff1a; 这边可以看见创建了一个exe&#x…

Anaconda安装以及如何创建新环境

一、安装&#xff1a; 官网下载安装包&#xff1a;Anaconda | The World’s Most Popular Data Science Platform ok. 二、创建新的python环境&#xff1a; &#xff08;这个在学习别人的开源代码时常用&#xff0c;因为自己的环境常常会与别人项目中的环境不兼容&#xff09…

Android Studio 屏幕适配

Android开发屏幕适配流程 首先studio中没有ScreenMatch这个插件的&#xff0c;下去现在这个插件 点击File->settings->Plugins->(搜索ScreenMatch插件)&#xff0c;点击下载&#xff0c;应用重启Studio即可&#xff0c;如下图 在values下 创建dimens.xml&#xff0c…

[数据集][目标检测]遛狗不牵绳数据集VOC格式-1980张

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1980 标注数量(xml文件个数)&#xff1a;1980 标注类别数&#xff1a;5 标注类别名称:["dog","p…

Cpp9 — map和set

map和set STL分为序列式容器&#xff08;vector、list、deque&#xff09;和关联式容器&#xff08;map、set&#xff09; 序列式容器&#xff1a;数据与数据之间没有很强的联系。&#xff08;各个数据之间没什么关联&#xff09;。底层为线性序列的数据结构&#xff0c;里面…

Go语言入门:从零开始的快速指南

文章目录 引言Go语言的诞生背景Go 语言的特性安装Go语言环境集成开发环境安装第一个Go程序Go 源代码的特征解读 引言 Go语言&#xff08;也称为Golang&#xff09;是一种开源的、静态类型的编程语言&#xff0c;由Google开发。它的设计目标是简单、高效、安全、并且易于学习和…

使用docker 搭建nginx + tomcat 集群

创建3个Tomcat容器&#xff0c;端口分别映射到 8080,8081,8082&#xff0c;使用数据卷挂载&#xff0c;分别将宿主机目录下的 /opt/module/docker/tomcat3/ROOT1/&#xff0c;/opt/module/docker/tomcat3/ROOT2/&#xff0c;/opt/module/docker/tomcat3/ROOT2/ 挂载到 容器内部…

安防监控视频汇聚EasyCVR电子地图定位偏移是什么原因?

安防监控EasyCVR视频汇聚综合管理平台具有强大的数据接入、处理及分发能力&#xff0c;平台可提供视频监控直播、云端录像、云存储、录像检索与回看、告警上报与查询、平台级联、云台控制、语音对讲、电子地图、轨迹跟踪、H.265自动转码等视频能力。 在视频监控管理平台TSINGSE…

什么样的跨网文件安全交换系统 可实现安全便捷的文件摆渡?

进入互联网时代&#xff0c;网络的运算和数据管理能力助力各个行业高速发展&#xff0c;但同样带来了一些网络安全隐患&#xff0c;网络攻击、数据窃取、敏感信息泄露等问题。为此&#xff0c;我国出台了系列政策来全面提升银各行业系统网络安全整体防护水平&#xff0c;其中“…

微信小程序中的全局数据共享(状态管理)使用介绍

开发工具&#xff1a;微信开发者工具Stable 1.06 一、状态管理简介 微信小程序全局状态是指可以在不同页面之间共享的数据或状态。 它可以存储用户的登录状态、个人信息、全局配置信息等。 二、安装MobX 1、安装NPM 在资源管理器的空白地方点右键&#xff0c;选择“在外部…

在Volo.Abp微服务中使用SignalR

假设需要通过SignalR发送消息通知&#xff0c;并在前端接收消息通知的功能 创建SignalR服务 在项目中引用 abp add-package Volo.Abp.AspNetCore.SignalR在Module文件中添加对模块依赖 [DependsOn(...typeof(AbpAspNetCoreSignalRModule))] public class IdentityApplicati…