山东大学机试试题合集

2024-09-04 07:12
文章标签 山东大学 合集 试试

本文主要是介绍山东大学机试试题合集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🍰🍰🍰高分篇已经涵盖了绝大多数的机试考点,由于临近预推免,各校的机试蜂拥而至,我们接下来先更一些各高校机试题合集,算是对前边学习成果的深入学习,也是对我们代码能力的锻炼。加油!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.chinasem.cn/article/1135345

相关文章

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

C++语法知识点合集:11.模板

文章目录 一、非类型模板参数1.非类型模板参数的基本形式2.指针作为非类型模板参数3.引用作为非类型模板参数4.非类型模板参数的限制和陷阱:5.几个问题 二、模板的特化1.概念2.函数模板特化3.类模板特化(1)全特化(2)偏特化(3)类模板特化应用示例 三、模板分离编译1.概念2.模板的分离编译 模版总结 一、非类型模板参数 模板参数分类类型形参与非类型形参 非类型模板

Linux性能分析工具合集

Linux性能分析工具合集 工具合集主要包含以下各种工具,对于了解Linux系统结构、网络结构、内核层次具有一定的帮助。 Linux Performance Observability ToolsLinux Static Performance ToolsLinux Performance Benchmark ToolsLinux Performance Tuning ToolsLinux

JVM合集

序言: 1.什么是JVM? JVM就是将javac编译后的.class字节码文件翻译为操作系统能执行的机器指令翻译过程: 前端编译:生成.class文件就是前端编译后端编译:通过jvm解释(或即时编译或AOT)执行.class文件时跨平台的,jvm并不是跨平台的通过javap进行反编译 2.java文件是怎么变成.class文件的? 属于前端编译 3..class文件解读 采用1

C语言程序与设计第四版课后习题 - 1~8章大合集

前言 本文章是一个大合集,按照课后习题的命名方式命名,方便寻找,只需要在目录上点相对应的题号即可在这里插入图片描述 第一章课后习题 1.1 编写一个C程序 题目概述: 请参照本章例题,编写一个C程序,输出一下信息: *****************************Very good!***************************** 代码实现: #define

手机扬声器音量总是不够大?试试“扬声器助推器”吧

手机的扬声器音量总是不够大,尤其是在嘈杂的环境中,音乐和视频的声音总是不太清晰。直到我发现了这款“扬声器助推器”,我的手机音质瞬间提升了好几个档次。 软件简介: “扬声器助推器”利用先进的音频处理技术,能够提高手机扬声器的音量,让声音更加清晰响亮。此外,还可以设置最大允许增强量,避免音量过大损坏扬声器。 版本特点: 提升音量效果显著,音质清晰。可以自定义最大增强量,保护扬声器。 使用体

《黑神话:悟空》专题合集MOD/修改器/壁纸/音乐/CG剧情

《黑神话:悟空》专题合集」 链接:https://pan.quark.cn/s/d67857f4e308 包含内容: 《黑神话:悟空》MOD合集 《黑神话:悟空》修改器(风灵月影) 《黑神话:悟空》壁纸合集 《黑神话:悟空》3小时CG完整剧情合集 4K120帧最高画质!国语 简中字幕 附:4K 结尾动画合集 ​​​国语 简中字幕 《黑神话:悟空》主题曲 《黑神话

【鼠鼠学AI代码合集#5】线性代数

在前面的例子中,我们已经讨论了标量的概念,并展示了如何使用代码对标量进行基本的算术运算。接下来,我将进一步说明该过程,并解释每一步的实现。 标量(Scalar)的基本操作 标量是只有一个元素的数值。它可以是整数、浮点数等。通过下面的 Python 代码,我们可以很容易地进行标量的加法、乘法、除法和指数运算。 代码实现: import torch# 定义两个标量x = torch.tens

diffusion model 合集

diffusion model 整理 DDPM: 前向一步到位,从数据集里的图片加噪声,根据随机到的 t t t 决定混合的比例,反向要慢慢迭代,DDPM是用了1000步迭代。模型的输入是带噪声图和 t,t 先生成embedding后,用通道和的方式加到每一层中间去: 训练过程是对每个样本分配一个随机的t,采样一个高斯噪声 ϵ \epsilon ϵ,然后根据 t 对图片和噪声进行混合,将加噪