山东大学机试试题合集

🍰🍰🍰高分篇已经涵盖了绝大多数的机试考点,由于临近预推免,各校的机试蜂拥而至,我们接下来先更一些各高校机试题合集,算是对前边学习成果的深入学习,也是对我们代码能力的锻炼。加油!fighting!( •̀ ω •́ )✧

我习惯于在注释中解释算法思路,所以可能没有题解,大家可以直接看代码。

🍩1832 字符串的差

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b,ans;cin>>a>>b;int lena=a.size(),lenb=b.size(),lb=0;//我们使用一次遍历,如果a和b的当前位置的字符一样,那么这个字符就会被删掉,就不用加入结果字符串了,同时b的当前位置的字符比较完了,要到b的下一个位置继续后续比较;否则就要被加入结果字符串了。for(int i=0;i<lena;i++){if(lb==lenb) break;//这一句要注意,没有的话有25%过不了if(a[i]==b[lb]) lb++;else ans+=a[i];}cout<<ans;return 0;
}

🍩1835 插入乘号🍦

//摘自N诺用户:JohnWang
//这道题目使用动态规划
#include<bits/stdc++.h>
using namespace std;
int dp[11][11]={0}; //dp[i][k]表示前i位数中插入k个乘号的最大值
int a[11][11]={0}; //a[i][j]表示从第i个数字到第j个数字所组成的j-i+1位整数值 int main()
{int n,k,num;string s;cin>>n>>k;cin>>s;for(int i=0;i<n;i++)//初始化数组a的值{num=0;for(int j=i;j<n;j++){num=num*10+(s[j]-'0');a[i][j]=num;}}for(int i=0;i<n;i++) dp[i][0]=a[0][i];//对所有位置来说,前边放置0个乘号的最大值都是数值(0到当前位的)本身for(int i=0;i<n;i++)//遍历所有数字,放置k个乘号{for(int j=1;j<=k;j++){for(int l=0;l<i;l++) dp[i][j]=max(dp[l][j-1]*a[l+1][i],dp[i][j]);//前i位数中插入j个乘号的最大值可能的情况:要么自身就已经是最大值;//要么是前边某个位置往前插入了j-1个乘号,然后我(i)这里再插入一个乘号,此时最大值是前边那个最大值*那个位置到我这里的数值}}cout<<dp[n-1][k]<<endl;return 0;
}

🍩1836 最长递减子序列🍦

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,m,maxlen=1;int a[105],b[105],dp[105];//a记录原始数据,b记录最长递减序列,dp记录到当前位置的最长递减序列长度cin>>n;for(int i=1;i<=n;i++)//输入数据{cin>>a[i];dp[i]=1;}for(int i=1;i<=n;i++)//更新dp{for(int j=i;j>0;j--)if(a[j]>a[i])//如果我的前边有人比我大,那么我就可以放到那个数的后边(+1的由来,1是我)dp[i]=max(dp[j]+1,dp[i]);maxlen=max(maxlen,dp[i]);//每次到一个新位置就更新一次}	m=maxlen;memset(b,0,sizeof(b));for(int i=n;i>0;i--)//倒着遍历一遍,找到各个数并放入b数组{if(dp[i]==m) b[m--]=a[i];for(int j=i+1;j<=n;j++){if(dp[i]==dp[j]&&a[i]>b[dp[i]+1])//如果我后边有人和我序列长度一样长,并且那个位置的数比我小,这表明我所在的序列更可能是一个更长的序列b[dp[i]]=a[i];//b中用到的dp可以直接看做序列中数的下标,这里就是更新序列的数}}for(int i=1;i<=maxlen;i++) cout<<b[i]<<" ";//输出最长递减序列cout<<endl;return 0;
}

🍩1831 简单的分数求和

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin>>n;double ans;for(int i=1;i<=n;i++) ans+=1.0/i;cout<<fixed<<setprecision(5)<<ans;return 0;
}

🍩1834  整数序列🍦

直接暴力求,会超内存,能过75%:

#include<bits/stdc++.h>
using namespace std;
int sum[10010]={0};
int main()
{sum[1]=1;for(int i=2;i<10010;i++) sum[i]=sum[i-1]+i;int n;cin>>n;vector<vector<int> > ans;int cnt=0;for(int i=n;i>=1;i--){for(int j=1;j<i;j++){if(sum[i]-sum[j-1]==n) {vector<int> a;for(int k=j;k<=i;k++) a.push_back(k);ans.push_back(a);cnt++;break;}}}if(cnt==0) {cout<<"NONE"<<endl;return 0;}for(int i=cnt-1;i>=0;i--)//这里是为了纠正输出顺序{for(int j=0;j<ans[i].size();j++) cout<<ans[i][j]<<" ";cout<<endl;}	return 0;
}

满分解法是使用二分查找:

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin>>n;int flag=0;for(int i=1;i<=n/2;i++)// 枚举a1{ // 二分anlong long l=i+1,r=n/2+1;while(l<r){long long mid=l+r+1>>1;long long x=(i+mid)*(mid-i+1)/2;if(x<=n) l=mid;else r=mid-1;}if((i+r)*(r-i+1)/2==n){for(int j=i;j<=r;j++) cout<<j<<" ";cout<<endl;flag=1;}}if(flag==0) cout<<"NONE"<<endl;return 0;
}

🍩1833 质数的个数🍦

直接暴力会超时,过75%:

#include<bits/stdc++.h>
using namespace std;
bool prime(int x)
{if(x==0||x==1) return false;for(int i=2;i<x;i++){if(x%i==0) return false;}return true;
}int main()
{int n,ans=0;cin>>n;for(int i=1;i<=n;i++){if(prime(i)) ans++;}cout<<ans;return 0;
}

满分代码:

//摘自N诺用户:JohnWang
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e7+5;
vector<long long> prime;
bool isPrime[MAXN];void init() {for(int i = 0;i < MAXN;i++)isPrime[i] = true;for(long long i = 2;i < MAXN;i++) {if(!isPrime[i]) continue;prime.push_back(i);for(long long j = i*i;j < MAXN;j += i) //如果i,j是int型会Runtime Error isPrime[j] = false;}
}int main() {long long n, cnt = 0;cin >> n;init();for(int i = 0;i < prime.size() && prime[i] <= n;i++)cnt++;cout << cnt << endl;return 0;
}

创作不易,点个赞吧~感兴趣的宝子欢迎关注本专栏和我们一起学习机试内容哦~

宝子们学习辛苦啦,休息下,我们下部分再见!👋( •̀ ω •́ )✧ ~

大家还想看哪个学校的机试题目,评论区告诉我~~~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Faceware面部动作捕捉系统,为虚拟角色赋予真实可信的面部动画

在数字娱乐产业日新月异的今天&#xff0c;虚拟角色的真实性和可信度成为了衡量作品质量的重要标准之一。Faceware面部动作捕捉系统是这一领域中的佼佼者&#xff0c;它以先进的技术和卓越的性能&#xff0c;为虚拟角色创造了生动、自然的面部表情&#xff0c;极大地提升了观众…

RK3588 系列之3—rknn使用过程中遇到的bug

RK3588 系列之3—rknn使用过程中遇到的bug 1.librockchip_mpp.so: file format not recognized&#xff1b; treating as linker scrip2.Could not find a package configuration file provided by "OpenCV" with any of the following names参考文献 1.librockchip_…

原点安全荣获“AutoSec Awards 安全之星”优秀汽车数据安全合规方案奖

9月3日&#xff0c;「AutoSec 2024第八届中国汽车网络安全周暨第五届智能汽车数据安全展」在上海盛大开幕。本届大会由谈思实验室和谈思汽车主办、上海市车联网协会联合主办&#xff0c;以汽车“网络数据安全、软件安全、功能安全”为主题&#xff0c;汇聚了国内外的技术专家、…

生信机器学习入门4 - scikit-learn训练逻辑回归(LR)模型和支持向量机(SVM)模型

通过逻辑回归&#xff08;logistic regression&#xff09;建立分类模型 1.1 逻辑回归可视化和条件概率 激活函数 (activation function)&#xff1a; 一种函数&#xff08;如 ReLU 或 S 型函数&#xff09;&#xff0c;用于对上一层的所有输入进行求加权和&#xff0c;然后生…

MFC工控项目实例之九选择下拉菜单主界面文本框显示菜单名

承接专栏《MFC工控项目实例之八选择下拉菜单添加打钩图标》 1、在主界面添加一个组合框和一个静态文本框。 2、在SEAL_PRESSUREDlg.cpp文件中添加代码 BOOL CSEAL_PRESSUREDlg::OnInitDialog() {CDialog::OnInitDialog(); ... GetDlgItem(IDC_STATIC_TYPNAME)->SetFont(&a…

如何实现一个定时任务?六种策略可实现

目录标题 1、自定义单线程2、JDK ScheduledExecutorService3、 Spring Task4、Quartz5、Elastic-job6、xxl-job最后&#xff1a;思考更上一层1. 高性能2. 高并发3. 高可用 设计方案 1、自定义单线程 上图中&#xff0c;我们启动一个线程&#xff0c;该线程无限循环执行&#xf…

文件操作详解:fgetc,fputc,fgets,fputs,fscanf,,fprintf,fread,fwrite的使用和例子 C语言

前言 在日常应用中&#xff0c;我们为了持续的使用一些数据&#xff0c;为了让数据可以在程序退出后可以保存并正常使用&#xff0c;引入了文件的概念和操作。本文分享了一些常用的文件操作函数的使用方法和各自的区别。 一、常用文件顺序读写函数 下面例程所使用的VS工程代码…

链表算法题(下)

在链表算法题&#xff08;上&#xff09;长中我们已经学习了一系列的链表算法题&#xff0c;那么在本篇中我们将继续来学习链表的算法题&#xff0c;接下来就继续来破解链表的算法题吧&#xff01; 1.相交链表 160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 通过以上…

mysql开启远程访问

个人建议mysql可以用宝塔自动下载安装。 远程访问&#xff0c; 1.关闭防火墙&#xff0c;确保ip能ping通 2.ping端口确定数据库能ping通 3.本地先连上去命令行修改远程访问权限。 mysql -u root -p use mysql; select user,host from user; select host from user where u…

锐捷网络2025届校园招聘正式启动,【NTA6dni】!

锐捷网络2025届校园招聘正式启动&#xff0c;内推码[NTA6dni]。 原文链接点这 投递链接点这 祝大家面试顺利&#xff0c;offer多多~ 有问题大家可以评论&#xff0c;互相交流~

什么是单片机?为什么要学习单片机?

实现目标 1、熟悉单片机定义、特点、应用场景、发展历史等&#xff1b; 2、理解为什么要学习单片机&#xff1f;怎样学习单片机&#xff1f; 一、单片机是什么&#xff1f; 1、定义 单片机是集成在一块&#xff08;单&#xff09;芯片上的微型计算机。平时我们把 MCU&#x…

Java | Leetcode Java题解之第387题字符串中的第一个唯一字符

题目&#xff1a; 题解&#xff1a; class Solution {public int firstUniqChar(String s) {Map<Character, Integer> position new HashMap<Character, Integer>();Queue<Pair> queue new LinkedList<Pair>();int n s.length();for (int i 0; i …

KMP 详解

KMP数组存的是什么 对于一个字符串 b,下标从1开始。 则kmp[i]表示 以i结尾的连续子串 s的前缀的最大值&#xff08;等价于前缀最大结尾处&#xff09; 如何求KMP 假设 i 以前的KMP都被求出来了。 j 表示上一个字符可以成功匹配的长度&#xff08;等价于下标&#xff09; …

家里有猫用宠物空气净化器有用吗?希喂、米家、有哈哪款更好

在快节奏的现代生活中&#xff0c;越来越多的人选择宠物作为心灵的慰藉与生活的伴侣。起初&#xff0c;这份陪伴的需求简单而纯粹&#xff0c;但随着日子一天天过去&#xff0c;那份简单的情感逐渐生根发芽&#xff0c;成长为深厚的责任与爱。我在前两年养了两只猫&#xff0c;…

Spring之整合Mybatis底层源码解析

整合核心思路 由很多框架都需要和Spring进行整合&#xff0c;而整合的核心思想就是把其他框架所产生的对象放到Spring容器中&#xff0c;让其成为Bean。 ​ 比如Mybatis&#xff0c;Mybatis框架可以单独使用&#xff0c;而单独使用Mybatis框架就需要用到Mybatis所提供的一些类…

TCP滑动窗口(面试)

TCP三次握手和四次挥手 TCP滑动窗口是什么&#xff1f; 如果传输的数据比较大&#xff0c;需要拆分为多个数据包进行发送。如果TCP 协议需要收到确认应答后&#xff0c;才可以发送下一个数据包。这样的方法效率偏低 为了避免这种情况&#xff0c;TCP使用了滑动窗口。 滑动窗口…

STM32(一)简介

一、stm32简介 1.外设接口 通过程序配置外设来完成功能 2.系统结构 3.引脚定义 4.启动配置 5.最小系统电路

MySQL基础:索引

&#x1f48e;所属专栏&#xff1a;MySQL 1. 索引概述 MySQL中的索引是帮助MySQL高效获取数据的数据结构&#xff0c;可以极大地提高数据库的查询效率&#xff0c;减少数据库的I/O成本&#xff0c;就像书的目录一样&#xff0c;它可以帮助我们快速定位到书中的内容。 优势&…

Word封面对齐技巧

文章目录 前言一、对齐封面1. 点击视图&#xff0c;添加标尺2. 选中文字&#xff0c;右击段落3. 点击制表符&#xff0c;设置制表位位置4. 鼠标点击“&#xff1a;”后面&#xff0c;点击“Tab”键5. 按住“Ctrl”键&#xff0c;选中没对齐的文字&#xff0c;点击“中文板式”&…

SprinBoot+Vue学生选课微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平…