山东大学机试试题合集

news2024/9/21 0:49:04

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

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

相关文章

SQL通用语法、SQL分类以及DDL

1.SQL 1.1SQL通用语法 1.SQL语句可以单行或多行书写&#xff0c;以分号结尾2.SQL语句可以使用空格/缩进来增强语句的可读性。3.MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写。4.注释&#xff1a; 单行注释&#xff1a;–空格 注释内容或#注释内容&#…

浏览器控制台安装并使用npm

​ 有时候想调用npm里的库跟api&#xff0c;正常我们项目环境里可以直接调用&#xff0c;其实也可以直接在开发者工具的控制台里安装&#xff0c;然后调用安装好的库的api Github安装方式&#xff1a;console-importer 安装完成后我们就可以安装第三方的库&#xff0c;然后直…

【Hot100算法刷题集】哈希-01-两数之和(暴力枚举再优化,也不是哈希表的对手)

&#x1f3e0;关于专栏&#xff1a;专栏用于记录LeetCode中Hot100专题的所有题目 &#x1f3af;每日努力一点点&#xff0c;技术变化看得见 题目转载 题目描述 &#x1f512;link->题目跳转链接 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中…

数据结构-栈、队列-相关练习

数据结构-栈、队列-相关练习 1.用队列实现栈2.用栈实现队列3.设计循环队列 1.用队列实现栈 用队列实现栈 题目概述&#xff1a;请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 em…

《信息技术 云计算 边缘云通用技术要求》国家标准发布,九州未来参编

日前&#xff0c;2024年第17号国家标准公告发布&#xff0c;由全国信标委云计算标准工作组组织制定、九州未来作为行业专家单位参编的《信息技术 云计算 边缘云通用技术要求》国家标准正式获批发布。 边缘云作为云计算技术的有效补充和拓展&#xff0c;能够实现将云计算能力拓展…

信捷 XD PLC 数据寄存器的偏移量

信捷 XD PLC&#xff0c;数据寄存器 D 可用作软元件的偏移量&#xff0c;使得软元件的使用更加简单和便于控制。 格式&#xff1a;Dn[Dm]、Xn[Dm]、Yn[Dm]、Mn[Dm]等。 带偏移的位组成的字寄存器&#xff1a;DXn[Dm]表示 DX[nDm]。 带偏移的软元件&#xff0c;偏移量只可用软…

信息安全发展阶段与形式

关注这个证书的其他相关笔记&#xff1a;NISP 一级 —— 考证笔记合集-CSDN博客 0x01&#xff1a;信息安全的发展阶段 信息安全的发展阶段可以参照下面的思维导图&#xff1a; 0x02&#xff1a;我国的信息安全形式 2013 年&#xff0c;“棱镜门” 事件在全球持续发酵&#xf…

创业型公司如何实现数字化营销突破?

​在当今数字化时代&#xff0c;创业型公司可谓机遇与挑战并存。如何利用数字化营销手段实现突破&#xff0c;成为发展关键。 一、现状之困 资源有限&#xff1a;创业型公司资金、人力相对匮乏&#xff0c;难在传统营销上大笔投入。 品牌知名度低&#xff1a;新公司在市场上认…

【启明智显技术分享】探讨CAN总线相关知识以及Model3C 2路CAN的应用

一、 CAN总线相关知识 CAN总线概述 CAN&#xff08;Controller Area Network&#xff09;总线是一种高实时性、高可靠性和灵活性的串行通信协议&#xff0c;广泛应用于汽车和工业控制系统中。它由德国BOSCH公司开发&#xff0c;最高速率可达到1Mbps&#xff0c;具有强大的检错…

一台手机一个ip地址吗?手机ip地址泄露了怎么办

在数字化时代&#xff0c;‌手机作为我们日常生活中不可或缺的一部分&#xff0c;‌其网络安全性也日益受到关注。‌其中一个常见的疑问便是&#xff1a;‌“一台手机是否对应一个固定的IP地址&#xff1f;‌”实际上&#xff0c;‌情况并非如此简单。‌本文首先解答这一问题&a…

jQuery入门(七)jQuery实现按钮分页

一、分页案例分析 功能分析&#xff1a;使用分页插件&#xff0c;实现分页&#xff0c;效果如下图&#xff1a; 二、实现思路和代码 2.1&#xff09;页面实现分析 1.引入分页插件的样式文件和 js 文件。 2. 定义当前页码和每页显示的条数。(分页必备信息) 3. 调用查询数据…

京东API接口:商品详情页呈现商品的全网价格数据信息

如今&#xff0c;不少品牌企业为更好销售商品、塑造品牌&#xff0c;都开设了自己的自有商城。那么&#xff0c;对于这类自有商城平台&#xff0c;该如何做才能更好地提升商品的呈现效果呢&#xff1f;一个比较好的建议是&#xff0c;在电商商品详情界面上呈现出商品的全网价格…

IMU助力JAXA空间站机器人

近日&#xff0c;日本宇宙航空研究开发机构&#xff08;JAXA&#xff09;宣布&#xff0c;在国际空间站&#xff08;ISS&#xff09;实验舱“希望号”&#xff08;Kibo&#xff09;上部署的一款移动摄像机器人将采用Epson M-G370系列惯性测量单元&#xff08;IMU&#xff09;。…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——10.继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层…

华为OD机试真题 - 最长连续子序列 - 双指针(Python/JS/C/C++ 2024 D卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

二叉树知识点

参考这篇文章二叉树知识点最详细最全讲解-CSDN博客 目录 预备知识 基本术语 相关性质 1.二叉树的定义 2.二叉树的性质 3.二叉树的种类 3.1 满二叉树 3.2 完全二叉树 3.3 二叉查找树 3.4 平衡二叉搜索树 4.二叉树的存储方式 4.1 链式存储 4.2 顺序存储 4.二叉树…

Behind the Code:与 Rakic 和 Todorovic 对话 OriginTrail 如何实现 AI 去中心化

原文&#xff1a;https://www.youtube.com/watch?vZMuLyLCtE3s&listPLtyd7v_I7PGnko80O0LCwQQsvhwAMu9cv&index12 作者&#xff1a;The Kusamarian 编译&#xff1a;OneBlock 随着人工智能技术的飞速发展&#xff0c;一系列前所未有的挑战随之而来&#xff1a;模型的…

NineData云原生智能数据管理平台新功能发布|2024年8月版​​

本月发布 10 项更新&#xff0c;其中重点发布 5 项、其他发布 5 项。 重点发布​ 数据库 DevOps - 敏感数据保护功能大幅升级​ 敏感数据保护全新升级&#xff0c;新增支持敏感数据等级&#xff0c;方便进行分类分级管控&#xff0c;加入数据类型概念&#xff0c;用于智能识…

分享基于PDF.JS的移动端PDF阅读器代码

一、前言 在之前的文章《分享基于PDF.js的pdf阅读器代码》里提到了PC端基于PDF.js的阅读器&#xff0c;本文将提供针对移动端的版本。 二、pdfViewer 为了能够直接使用&#xff0c;这里分享一下经过简单修改后能直接使用的pdfViewer代码&#xff1a; pdfViewer代码目录&…

SpringBoot2:请求处理原理分析-FORM表单请求接口

一、RESTFUL简介 Rest风格支持&#xff08;使用HTTP请求方式&#xff0c;动词来表示对资源的操作&#xff09; 以前&#xff1a;/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在&#xff1a; /user GET-获取用户 DELETE-删除用户 PUT-修改…