【我们一起60天准备考研算法面试(大全)-第一天 1/60(排序、进制)】【每天40分钟,我们一起用60天准备 考研408-数据结构(笔试)】

news2024/9/24 21:20:21

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

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

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

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

  • 一、排序
    • 1. 成绩排序(清华大学考研机试题)
        • 考点:结构体排序
          • 在结构体中定义排序
          • 使用比较器定义排序
        • 注意问题:需要处理 值相等时 先后顺序
    • 2. 成绩排序2( 清华大学考研机试题 )
  • 二、进位制
    • 1. 进制转换(清华大学考研机试题)
        • 本题考点
          • 1. 大数除法
          • 2. 十进制转二进制 步骤
    • 2. 进制转换2(清华大学考研机试题)
        • 考点:M进制转N进制
          • 和10进制转2进制 不一样的就是:短除时的 进位一个是10,而另一个是a仅此而已

一、排序

1. 成绩排序(清华大学考研机试题)

在这里插入图片描述

考点:结构体排序

在结构体中定义排序
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 1010;

int n, m;
struct Person
{
    string name;
    int score;
    int id;

    bool operator< (const Person& t) const
    {
        if (score != t.score) return score < t.score;
        return id < t.id;
    }
    bool operator> (const Person& t) const
    {
        if (score != t.score) return score > t.score;
        return id < t.id;
    }
}q[N];

int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i ++ )
    {
        cin >> q[i].name >> q[i].score;
        q[i].id = i;
    }

    if (!m) sort(q, q + n, greater<Person>());
    else sort(q, q + n);

    for (int i = 0; i < n; i ++ )
        cout << q[i].name << ' ' << q[i].score << endl;
    return 0;
}
使用比较器定义排序
#include<bits/stdc++.h>
using namespace std;
struct node{
    int x,id;
    string name;
}a[1001];
bool cmp1(node a,node b){
//从小到大
    if(a.x==b.x)return a.id<b.id;
    return a.x<b.x;
}
bool cmp2(node a,node b){
//从大到小
    if(a.x==b.x)return a.id<b.id;
    return a.x>b.x;
}
int main()
{
    int n;
    bool ok;
    cin>>n>>ok;
    for(int i=1;i<=n;i++){
        cin>>a[i].name>>a[i].x;
        a[i].id=i;
    }
    if(ok)sort(a+1,a+1+n,cmp1);
    if(!ok)sort(a+1,a+1+n,cmp2);
    for(int i=1;i<=n;i++)
        cout<<a[i].name<<' '<<a[i].x<<'\n';
}

注意问题:需要处理 值相等时 先后顺序

在结构体中定义一个id,记录出现的顺序

2. 成绩排序2( 清华大学考研机试题 )

在这里插入图片描述

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

using namespace std;

const int N = 110;

int n;
struct Person
{
    int id;
    int score;
    bool operator< (const Person& t) const
    {
        if (score != t.score) return score < t.score;
        return id < t.id;
    }
}q[N];

int main()
{
    cin >> n;
    for (int i = 0; i < n; i ++ ) cin >> q[i].id >> q[i].score;
    sort(q, q + n);

    for (int i = 0; i < n; i ++ ) cout << q[i].id << ' ' << q[i].score << endl;
    return 0;
}

二、进位制

1. 进制转换(清华大学考研机试题)

在这里插入图片描述

本题考点

1. 大数除法

可以csdn搜索一下

关键就是vector的使用 和 除法步骤记得就好

就好比用 代码模拟出 草稿纸上的除法运算

2. 十进制转二进制 步骤

在这里插入图片描述

代码看不懂可以,只需明白逻辑,然后自己写即可

一定自己写出来,才明白

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

using namespace std;

void div(vector<int>& tmp,vector<int>& ans)
{
    vector<int> tmp2;
    int t = 0;
    for(int i = 0; i < tmp.size(); i++)
    {
        t = t*10 + tmp[i];
        tmp2.push_back(t/2);
        t = t%2;
    }
    ans.push_back(t);
    reverse(tmp2.begin(),tmp2.end());
    while(tmp2.size()!=1 && tmp2.back()==0)
    {
        tmp2.pop_back();
    }
    reverse(tmp2.begin(),tmp2.end());
    tmp = tmp2;
}

int main()
{
    string s;
    while(cin >> s)
    {
        vector<int> tmp;
        
        for(int i = 0; i < s.size(); i++)
        {
            tmp.push_back(s[i]-'0');
        }
        
        vector<int> ans;    
        //什么时候停止
        if(s=="0")
        {
            cout << 0 << endl;
        }
        else
        {
            while(tmp.size()>1 || (tmp.size() == 1 && tmp.back() != 0))
            {
                div(tmp,ans);
            }
            reverse(ans.begin(),ans.end());
            for(int i = 0; i < ans.size(); i++)
            {
                cout << ans[i];
            }
            cout << endl;
        }
    }
    return 0;
}

2. 进制转换2(清华大学考研机试题)

在这里插入图片描述

考点:M进制转N进制

和10进制转2进制 不一样的就是:短除时的 进位一个是10,而另一个是a仅此而已
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
    int a, b;
    string s;
    cin >> a >> b >> s;
    vector<int> A;
    for (int i = 0; i < s.size(); i ++ )
    {
        char c = s[s.size() - 1 - i];
        if (c >= 'A') A.push_back(c - 'A' + 10);
        else A.push_back(c - '0');
    }
    string res;
    if (s == "0") res = "0";
    else
    {
        while (A.size())
        {
            int r = 0;
            for (int i = A.size() - 1; i >= 0; i -- )
            {
                A[i] += r * a;
                r = A[i] % b;
                A[i] /= b;
            }
            while (A.size() && A.back() == 0) A.pop_back();
            if (r < 10) res += to_string(r);
            else res += r - 10 + 'a';
        }
        reverse(res.begin(), res.end());
    }
    cout << res << endl;

    return 0;
}

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

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

相关文章

与彭老师交流(北京大学 心理与认知科学学院)

交流&#xff1a;主要是了解人家在做什么对什么感兴趣&#xff0c;和让人家知道你在做什么对什么感兴趣&#xff0c;然后你觉得未来可以做什么有价值的事情。 1.老师做的方向里面有包含利用人工智能这一块的知识&#xff0c;我觉得我是可以做的&#xff0c;机理这一块的东西我不…

MySQL数据库复合查询

文章目录 一、多表查询二、自连接三、子查询1.单行子查询2.多行子查询3.多列子查询4.在from子句中使用子查询 四、合并查询 一、多表查询 在实际开发中&#xff0c;我们需要查询的数据往往会来自不同的表&#xff0c;所以需要进行多表查询。下面我们用一个简单的公司管理系统&…

启动游戏提示缺少(或丢失)xinput1_3.dll的解决办法

在我们打开游戏的或者软件的时候&#xff0c;电脑提示“找不到xinput1_3.dll&#xff0c;无法继续执行此代码”怎么办&#xff1f;相信困扰着不少小伙伴&#xff0c;我再在打开吃鸡的时候&#xff0c;然后花了一上午的时候时间研究&#xff0c;现在终于知道xinput1_3.dll文件是…

基于TCP协议实现多人在线的聊天室

基于TCP协议实现多人在线的聊天室 程序采用CS架构&#xff0c;功能支持注册&#xff0c;登录&#xff0c;退出&#xff0c;私聊&#xff0c;群聊&#xff0c;查看历史信息。属于Java Swing窗口程序。 技术&#xff1a;Java swing&#xff0c;mysql 开发工具&#xff1a;IDEA…

性能测试之全链路压测流量模型你了解多少

目录 前言 基于业务模型实现 基于流量录制回放 灰度分流 总结&#xff1a; 前言 现在全链路越来越火&#xff0c;各大厂商也纷纷推出了自己的全链路压测测试方案。特别是针对全链路压测流量模型&#xff0c;各家方案都有所不同。最近我看了一些这方面的资料&#xff0c;有…

万能的网关系统设计方案,一篇带走

本文准备围绕七个点来讲网关&#xff0c;分别是网关的基本概念、网关设计思路、网关设计重点、流量网关、业务网关、常见网关对比&#xff0c;对基础概念熟悉的朋友可以根据目录查看自己感兴趣的部分。 什么是网关 网关&#xff0c;很多地方将网关比如成门&#xff0c; 没什么…

mac pro m1:搭建zookeeper集群并设置开机自启

0. 引言 之前我们讲解过搭建zookeeper单节点&#xff0c;但在实际生产中&#xff0c;为了保证服务高可用&#xff0c;通常我们是采用集群模式。所以本次我们来实操集群模式的搭建 1. zk集群模式 zk可以作为注册中心和配置中心&#xff0c;常用在微服务各类组件的多节点服务治…

Tomcat优化及部署

目录 一、Tomcat概述 二、Tomcat核心组件 1.Web容器 2.servlet容器 3.JSP容器 三、Tomcat的功能组件 1.connector 2.container 3.service 四、Tomcat部署 1.关闭防火墙和安全机制 2.将安装 Tomcat 所需软件包传到/opt目录下 3.安装JDK 4.设置JDK环境变量 5.编写j…

链路性能测试中参数多样性方法分享

目录 业务无关量 随机数字 线程安全随机 随机字符串 业务相关量 随机相关量 上游接口获取 上游接口造数据 提前造数据 总结&#xff1a; 下面分享几种我工作中常用到的增加参数多样性的方法。 业务无关量 这个是最常用到的&#xff0c;当部分的接口参数对接下来的用…

机器人开发--EKF扩展卡尔曼滤波介绍

机器人开发--EKF卡尔曼滤波介绍 1 介绍1.1 概述KF (Kalman Filter)EKF (Extended Kalman Filter)UKF (Unscented Kalman Filter) 1.2 发展历史1.3 卡尔曼演化分支1.4 应用1.5 特点1.6 姿态估计问题 from 南叔先生1.7 EKF、PF、UKF 对比1.8 EKF 递归框架 2 理解機器人學&#xf…

使用Matplotlib画三维图

使用matplotlib画3D图&#xff1a; import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D# 创建X和Y的网格点 x np.linspace(-5, 5, 100) y np.linspace(-5, 5, 100) X, Y np.meshgrid(x, y)# 创建Z的网格点&#xff08;这里使用一…

nginx 配置m3u8播放视频

第一步nginx配置&#xff1a; 参考 csdn - CircleMouse Nginx配置搭建m3u8格式的视频播放服务 user www www; worker_processes auto; error_log /www/wwwlogs/nginx_error.log crit; pid /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 51200;stream {l…

提高情商的训练方法

在当今社会&#xff0c;情商已经成为了一个越来越受到重视的概念。情商指的是一个人在情感方面的智力水平&#xff0c;即情绪智商&#xff0c;包括了自我意识、自我管理、社交意识和关系管理等多个方面。而提高情商并非是天生的天赋&#xff0c;而是可以通过学习和实践获得的技…

自然语言处理从入门到应用——预训练模型总览:词嵌入的两大范式

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 相关文章&#xff1a; 预训练模型总览&#xff1a;从宏观视角了解预训练模型 预训练模型总览&#xff1a;词嵌入的两大范式 预训练模型总览&#xff1a;两大任务类型 预训练模型总览&#xff1a;预训练模型的拓展 …

【论文解读系列】MLLM研究综述

A Survey on Multimodal Large Language Models 1 中国科大科技学院、认知智能国家重点实验室 2 腾讯优图实验室 MLLM目录 0. 摘要1. 引言2. 总览3. 方法3.1 多模态指令调谐3.1.1 引言3.1.2 前言(Preliminaries)3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2 多模态…

深入理解 Golang: 网络编程

Go 中的 Epoll 关于计算机网络分层与 TCP 通信过程过程此处不再赘述。 考虑到 TCP 通信过程中各种复杂操作&#xff0c;包括三次握手&#xff0c;四次挥手等&#xff0c;多数操作系统都提供了 Socket 作为 TCP 网络连接的抽象。Linux -> Internet domain socket -> SOC…

layui中文、以及图标乱码解决方案

最终解决方案…手动对js文件中的中文&#xff0c;用unicode进行编码

修改 ChatGLM2-6B 自我认知的 Lora 微调教程

修改 ChatGLM2-6B 自我认知的 Lora 微调教程 0. 背景1. 部署微调项目2. 数据集说明3. 模型监督微调(Lora)4. 模型效果测试5. 导出微调模型6. 调用导出的模型 0. 背景 现在开始学习微调&#xff0c;主要学习 Lora 微调。 这次尝试了修改 ChatGLM2-6B 自我认知&#xff0c;文章…

2023.7.2-【for语言】:输入一个整数,并输入该整数对应个数的整数,求他们的和与平均值

程序&#xff1a; int a;int b0;int c;int sum0;double ave;printf("请输入待求整数的个数&#xff1a;");scanf("%d",&a);for (b 1; b<a; b){printf("整数%d&#xff1a;", b);scanf("%d", &c);sum c;}printf("以上…

vite中的env环境变量

一、vite中使用env环境变量基本介绍 Vite 是一种现代化的前端构建工具&#xff0c;旨在提供快速的开发和构建体验。在 Vite 中&#xff0c;env 环境变量是一种用于在项目中设置和访问全局变量的机制。通过 env 变量&#xff0c;可以在不同环境下配置不同的参数&#xff0c;实现…