山东大学机试试题合集

news/2024/9/17 7:54:27/ 标签: 算法, 动态规划, 考研, 数据结构, 笔记, c++, 经验分享

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

相关文章

C语言之联合体和枚举

目录 前言 一、联合体类型的声明 二、联合体的特点 三、联合体的大小计算 四、联合体的适用场景举例&#xff1a; 五、枚举类型的声明 六、枚举类型的优点 总结 前言 本文主要讲述C语言的两种结构类型&#xff1a;联合体和枚举。 ❤️感谢支持&#xff0c;点赞关注不迷路❤️ 一…

Flask wtforms组件的作用

Flask wtforms组件&#xff08;WTForms&#xff09;在Flask框架中扮演着至关重要的角色&#xff0c;其作用主要体现在表单验证和模板渲染两个方面。以下是对Flask wtforms组件作用的详细阐述&#xff1a; 一、表单验证 WTForms的主要功能之一是表单验证&#xff0c;即将用户提…

Leetcode面试经典150题-83.删除链表中的重复元素

解法都在代码里&#xff0c;不懂就留言或者私信 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val …

【学术会议征稿】2024年第十届机械制造技术与工程材料国际学术会议(ICMTEM 2024)

2024年第十届机械制造技术与工程材料国际学术会议&#xff08;ICMTEM 2024&#xff09; 2024 10th International Forum on Manufacturing Technology and Engineering Materials 第十届机械制造技术与工程材料国际学术会议&#xff08;ICMTEM 2024&#xff09;将于2024年10月…

HMI触屏网关-VISION如何与Modbus TCP从机通信

上文&#xff1a;HMI触屏网关-VISION如何与Modbus RTU从机通信-CSDN博客 1. 硬件连接 Modbus TCP协议采用网口通信的方式&#xff0c;因此&#xff0c;只需要保证网关的LAN口IP和Modbus TCP从机的IP在同一网段即可。 Modbus TCP从机参数说明&#xff1a; 2. VISION创建Modbu…

Python世界:求解满足某完全平方关系的整数实践

Python世界&#xff1a;求解满足某完全平方关系的整数实践 任务背景实现思路参考资料 任务背景 本问题来自于菜鸟教程Python 100例中的例3: 一个整数&#xff0c;它加上100后是一个完全平方数&#xff0c;再加上168又是一个完全平方数&#xff0c;请问该数是多少&#xff1f; …

kuka6轴杂七杂八的学习记录(随时更新)

库卡 U盘打开备份的路径 C/KRL/User/ProjectRoot/控制柜的名字&#xff08;我这里是KRC5MICRO-8102594&#xff09;/最后有机器人图像就是了 在线编程&#xff1a;编程与诊断 ---- KRC explorer ---- 创建连接 msglib.src这个是生成弹窗的。在system里 kuka workvisual添加软…

集成电路学习:什么是RTOS实时操作系统

RTOS&#xff1a;实时操作系统 RTOS&#xff0c;全称Real Time Operating System&#xff0c;即实时操作系统&#xff0c;是一种专为满足实时控制需求而设计的操作系统。它能够在外部事件或数据产生时&#xff0c;以足够快的速度进行处理&#xff0c;并在规定的时间内控制生产过…

C++威力强大的助手 --- const

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; C之旅 const是个奇妙且非比寻常的东西&#xff0c;博主从《Effective C》一书中认识到关于const更深层次的理解&#xff0c;写此博客进行巩固。 &#x…

2024 高教社杯 数学建模国赛 (D题)深度剖析|反潜航空深弹命中概率问题|数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题&#xff01; CS团队倾注了大量时间和心血&#xff0c;深入挖掘解…

统一4A门户跳转到另外系统免登录

记录一下统一4A门户跳转到另外系统免登录 本系统创建sso页面 <template><div class"yu-loading" v-show"isLoading">...</div> </template> <script>export default {name: YuLogin,created: function () {// 1 在统一平台…

HIVE 数据仓库工具之第二部分(数据库相关操作)

HIVE 数据仓库工具之第二部分&#xff08;数据库相关操作&#xff09; 一、Hive 对数据库的操作1.1 创建数据库1.1.1 创建数据库语法1.1.3 示例 1.2 使用数据库1.2.1 使用数据库语法1.2.2 示例 1.3 修改数据库1.3.1 修改数据库的语法1.3.2 示例 1.4 删除数据库1.4.1 删除数据库…

二分算法入门(简单题)

习题1 704. 二分查找 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], targ…

机器学习与人工智能在未来建筑行业的应用:项目案例与分析

作者主页: 知孤云出岫 目录 作者主页:前言1. 项目背景1.1 行业挑战1.2 人工智能与机器学习的引入 2. 项目案例&#xff1a;智能建筑能耗管理系统2.1 项目介绍2.2 技术实现2.2.1 数据采集与预处理2.2.2 能耗预测模型构建2.2.3 控制策略优化 2.3 实施效果 3. 其他应用案例3.1 建…

C++ 设计模式——访问者模式

目录 C 设计模式——访问者模式1. 主要组成成分2. 逐步构建访问者模式步骤1: 创建元素接口和具体元素步骤2: 创建抽象访问者和具体访问者步骤3:创建对象结构步骤4: 客户端使用访问者模式 3. 访问者模式 UML 图UML 图解析 4. 访问者模式的优点5. 访问者模式的缺点6. 访问者模式适…

【netty系列-09】深入理解和解决tcp的粘包拆包

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

【网络安全】漏洞挖掘

漏洞描述 Spring框架为现代基于java的企业应用程序(在任何类型的部署平台上)提供了一个全面的编程和配置模型。 Spring Cloud 中的 serveless框架 Spring Cloud Function 中的 RoutingFunction 类的 apply 方法将请求头中的“spring.cloud.function.routing-expression”参数…

8、Django Admin后台中添加Logo

在项目settings.py文件 # 导入os&#xff0c;并且修改DIRS内容如下所示 import os TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates/)],APP_DIRS: True,OPTIONS: {context_processors: [django.template.con…

Nginx运维规范及安全配置

1.禁止在location字段对所有请求进行转发 location / {root html;index index.html idindex.htm;proxy_pass http://100.x.x.x:xxx/; }没有对url请求进行过滤&#xff0c;将所有请求转发到后台服务&#xff0c;会导致攻击类的URL被转发到后台&#xff0c;存在安全隐患 禁止使用…

glsl着色器学习(四)

前面讲到已经创建了程序对象&#xff0c;链接到顶点着色器和片段着色器&#xff0c;接着继续。 const positionLoc gl.getAttribLocation(prg, position); const normalLoc gl.getAttribLocation(prg, normal); const texcoordLoc gl.getAttribLocation(prg, texcoord);cons…