【笔试】美团2023年秋招第5场笔试(后端数开软件方向)

news/2024/4/29 14:52:17/文章来源:https://blog.csdn.net/qq_33957603/article/details/137026630

文章目录

      • T1 小美的升序数组
      • T2 小美的子序列
      • T3 小美的数组
      • T4 小美的元素删除
      • T5 题目忘了(不确定是不是这个题面)

23秋招,美团笔试5(技术)

2023 美团笔试题 0902,咋都是牛客月赛原题呀(

时间:2023.09,牛客补题, 补题2

T1 小美的升序数组

小美在 n 行 m 列的本子上写了许多字母,她会在每一行中找出一个字母,然后组成一个字符串。 小美想知道,组成的字符串中是否存在至少一个字符串包含“meituan”子序列。

补题

//AC
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
int a[maxn], b[maxn];
int main() {int n;  cin>>n;int ok = 1;for(int i = 1; i <= n; i++){cin>>a[i];b[i-1] = a[i]-a[i-1];if(i>=2 && a[i]<=a[i-1])ok = 0;}for(int i = 2; i < n; i++){if(b[i]>=b[i-1])ok = 0;}if(ok==1)cout<<"Yes\n";else cout<<"No\n";
}

T2 小美的子序列

小美拿到了一个数组。她每次可以进行如下操作之一:

  1. 选择一个元素,使其乘以 2。
  2. 选择一个元素,使其除以 2,向下取整。

小美希望第一个元素变成所有元素的最大值。请你判断小美最少需要操作多少次?

补题

//T2-AC
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
string a[1010];
int main() {int n, m;  cin>>n>>m;for(int i = 0; i < n; i++)cin>>a[i];string sp="meituan"; int cur = 0;for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){if(a[i][j]==sp[cur]){cur++;break;}}if(cur==7)break;}if(cur==7)cout<<"YES\n";else cout<<"NO\n";
}

T3 小美的数组

小美拿到了一个数组。她每次可以进行如下操作之一:

  1. 选择一个元素,使其乘以 2。
  2. 选择一个元素,使其除以 2,向下取整。

小美希望第一个元素变成所有元素的最大值。请你判断小美最少需要操作多少次?

//T3-AC
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
int a[maxn];
int main() {int n;  cin>>n;int mx = 0;for(int i = 1; i <= n; i++){cin>>a[i];mx = max(mx, a[i]);}int t = a[1], cc = 0;while(t < mx){t *= 2; cc++;}// cout<<cc<<"\n";int c2 = 0;for(int i = 2; i <= n; i++){while(a[i]>a[1]){c2++;a[i] /= 2;}}cout<<min(cc, c2)<<"\n";
}

T4 小美的元素删除

小美有一个数组,她希望删除 k 个元素,使得剩余的元素两两之间互为倍数关系。你能告诉小美有多少种删除方案吗? 由于答案过大,请对1e9+ 7取模。

补题

//T4-45%
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e5+10;
const int mod = 1e9+7;
int a[maxn];
int C(int n, int m){int sum = 1;for(int i = 1; i <= n; i++)sum *= i;for(int i = 1; i <= n-m; i++)sum /= i;for(int i = 1; i <= m; i++)sum /= i;return sum;
}
signed main() {int n, k;  cin>>n>>k;cout<<0<<"\n";// cout<<mod-1<<"\n";// set<int>se;// for(int i = 1; i <= n; i++){//     cin>>a[i];//     se.insert(a[i]);// }// sort(a+1,a+n+1);// int res = 0;// for(int i = 1; i <= n; i++){//     if(a[i]==1){//         // res++; //         continue;//     }//     int t = a[i]*a[i], rc = 2;//     while(se.count(t)){//         t *= a[i]; rc++;//     }//     if(rc >= n-k){//         res += C(rc, n-k);//     }// }// if(res!=0)cout<<res<<"\n";// int res = 1;// for(int i = 1; i <= n; i++)res *= i;// for(int i = 1; i <= n-k; i++)res /= i;// for(int i = 1; i <= k; i++)res /= i;// cout<<res<<"\n";// cout<<(n-k-1)*(n-k)%mod/2<<"\n";// else cout<<8<<"\n";// if(n-k==2){//     while(1);//     int rc = 0;//     for(int i = 1; i <= n; i++){//         for(int j = 1; j <= n; j++){//             if(i==j)continue;//             if(a[i]%a[j]==0 || a[j]%a[i]==0){//                 rc++;//             }//         }//     }//     cout<<rc/2<<"\n";//     return 0;// }
}
//AC
// 1、两两为倍数 & 元素互不相等,所以排序后,后一个元素都是前一个元素的倍数
// 2、最大数为1e9, 而最小倍数为2,所以序列的长度最多为31(可以建图,当然也可以不建,暴力也行,或者大于31时输出0拿部分分)
// 3、删除k个不好考虑,考虑最后保留的,也就是选出n-k个。
// dp[i][k], 以i元素为末尾元素,且前排累计挑选k个的方案数,最后答案就是每个元素为末尾,都选出n-k个的方案数累加。
// 转移:暴力枚举1-i,找出当前在集合里的元素j,对于所有元素j为末尾,依次选出1~(n-k)个时的方案都可以作为i为末尾时的贡献,累加上去即可。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2010, mod = 1e9+7;
int a[maxn], dp[maxn][maxn];
int main(){int n, k; cin>>n>>k;for(int i = 1; i <= n; i++) cin>>a[i];sort(a+1, a+n+1);for(int i = 1; i <= n; i++) {dp[i][1] = 1;  //选1个方案数1for(int j = 1; j < i; j++){  //暴力枚举前1-iif(a[i]%a[j]==0){  //a[j]可以作为以a[i]为末尾元素的集合中的元素(或者说a[i]可以加到a[j]后面)for(int kk = 2; kk <= n-k; kk++){  // 依次选出2~(n-k)个时的方案,先把a[i]选上去,所以从2开始dp[i][kk] += dp[j][kk-1];  // 贡献累加dp[i][kk] %= mod;}}}}int res = 0;for(int i = 1; i <= n; i++){  //以每个元素为末尾,都选出n-k个的方案数累加res = (res + dp[i][n-k])%mod;}cout<<res<<"\n";return 0;
}

T5 题目忘了(不确定是不是这个题面)

小美的彩虹糖

小美有很多的彩虹糖,每颗彩虹糖都有一个颜色,她每天可以吃两颗彩虹糖,如果今天吃的彩虹糖组合是之前没吃过的组合,则小美今天会很高兴。

例如,小美有 6 颗彩虹糖,颜色分别是[1,1,4,5,1,4] 。

小红第一天吃一组颜色为 1和4 的彩虹糖,小美会很高兴;

第二天吃一组颜色为 4 和 1的彩虹糖,小美不会很高兴;

第三天小美吃一组颜色为 1和 5 的彩虹糖,小美会很高兴,此时小美共有 2 天很高兴。

小美想知道,她最多有几天会很高兴。

//T5-AC
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
int a[maxn];
int main() {int n;  cin>>n;cout<<n/2<<"\n";// map<int,int>mp;// int res = 0;// set<int>ss;// set<pair<int,int>>se;// for(int i = 1; i <= n; i++){//     cin>>a[i];//     if(ss.size()==0)ss.insert(a[i]);//     for(int x : ss){//         pair<int,int>p = make_pair(min(x,a[i]), max(x,a[i]));//         if(se.count(p)){//             continue;//         }else{//             se.insert(p);//             break;//         }//     }//     // mp[a[i]]++;// }// cout<<se.size()<<"\n";// int res = 0;// vector<pair<int,int> > vc(mp.begin(), mp.end());// for(int i =0; i < vc.size(); i++){//     if(vc[i].second==0)continue;//     for(int j = i; j < vc.size(); j++){//         if((vc[j].second>0 && vc[i].second>0 && i!=j ) || (vc[i].second>=2)){//             vc[i].second--;//             vc[j].second--;//             // cout<<vc[i].first<<" "<<vc[j].first<<"\n";//             res++;//         }//         if(vc[i].second==0)break;//     }// }// cout<<res<<"\n";
}

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

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

相关文章

基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)

基于Hive的天气情况大数据分析系统&#xff08;通过hive进行大数据分析将分析的数据通过sqoop导入到mysql&#xff0c;通过Django基于mysql的数据做可视化&#xff09; Hive介绍&#xff1a; Hive是建立在Hadoop之上的数据仓库基础架构&#xff0c;它提供了类似于SQL的语言&…

机器学习-生存分析:基于QHScrnomo模型的乳腺癌患者风险评估与个性化预测

一、引言 乳腺癌作为女性常见的恶性肿瘤之一&#xff0c;对女性健康构成威胁。随着医疗技术的不断进步&#xff0c;个性化医疗逐渐成为乳腺癌治疗的重要方向。通过深入研究乳腺癌患者的风险评估和个性化预测&#xff0c;可以帮助医生更准确地制定治疗方案&#xff0c;提高治疗效…

windows下QT如何集成OpenCV

说明 我在windows下使用QT Creator12创建的CMake项目&#xff0c;需要OpenCV的一些功能。由于安装的时候我选择的QT组件都是MInGW的&#xff0c;所以无法使用VS studio版本的dll库。 为什么vs的版本不能用 我安装QT选择的是MinGW版本&#xff0c;本地编译QT工程只能选择MinG…

零基础10 天入门 Web3之第1天

10 天入门 Web3 Web3 是互联网的下一代&#xff0c;它将使人们拥有自己的数据并控制自己的在线体验。Web3 基于区块链技术&#xff0c;该技术为安全、透明和可信的交易提供支持。我准备做一个 10 天的学习计划&#xff0c;可帮助大家入门 Web3&#xff1a; 想要一起探讨学习的…

C#全新一代医院手术麻醉系统围术期全流程源码

目录 一、麻醉学科的起源 二、麻醉前访视与评估记录单 患者基本信息 临床诊断 患者重要器官功能及疾病情况 病人体格情况分级 手术麻醉风险评估 拟施麻醉方法及辅助措施 其他需要说明的情况 访视麻醉医师签名 访视时间 与麻醉相关的检查结果 三、手术麻醉信息系统…

Redis 特性,为什么要用Redis,Redis到底是多线程还是单线程

一、Redis介绍 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的&#xff0c;使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 二、特性(为什么要用Redis&#x…

地方废物回收机构管理的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. …

Linux的学习之路:3、基础指令(2)

一、echo指令 这个指令在上篇文章我也用了但是忘了说了&#xff0c;这个指令的大概用法就是把后面跟的文本等输出在显示器上&#xff0c;如下代码所示打印的“Hello Linux” [rootVM-24-9-centos ~]# echo "Hello Linux" Hello Linux二、输出重定向与输入重定向 着…

vue前端工程化

前言 本文介绍的是有关于vue方面的前端工程化实践&#xff0c;主要通过实践操作让开发人员更好的理解整个前端工程化的流程。 本文通过开发准备阶段、开发阶段和开发完成三个阶段开介绍vue前端工程化的整体过程。 准备阶段 准备阶段我将其分为&#xff1a;框架选择、规范制…

基于单片机HX711电子秤称重控制设计

**单片机设计介绍&#xff0c;基于单片机HX711电子秤称重控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机HX711的电子秤称重控制设计是一个融合了单片机技术、称重传感器技术和显示技术的综合性项目。其设计目…

C 语言贪吃蛇源码解析

贪吃蛇是一款经典的电子游戏&#xff0c;玩家控制一条不断成长的蛇&#xff0c;需要避免撞到自己的身体或者游戏边界&#xff0c;同时吃掉出现在屏幕上的食物以增长身体长度。 下面是一个简单的贪吃蛇游戏的C语言实现&#xff0c;使用了标准输入输出库conio.h和时间库windows.h…

GTC 2024 火线评论:DPU 重构文件存储访问

编者按&#xff1a;英伟达2024 GTC 大会上周在美国加州召开&#xff0c;星辰天合 CTO 王豪迈在大会现场参与了 GPU 与存储相关的最新技术讨论&#xff0c;继上一篇《GTC 2024 火线评论&#xff1a;GPU 的高效存储利用》之后&#xff0c;这是他发回的第二篇评论文章。 上一篇文章…

农村分散式生活污水分质处理及循环利用技术指南

标准已完成意见征集&#xff1a; 本文件给出了农村分散式生活污水分质处理及循环利用的总则、污水收集、污水分质处理、资源化利用、利用模式、运维管理等的指导。 本文件适用于农村分散式生活污水分质处理及循环利用的设施新建、扩建和改建工程的设计、施工与运维。 注:本文件…

微服务demo(二)nacos服务注册与集中配置

环境&#xff1a;nacos1.3.0 一、服务注册 1、pom&#xff1a; 移步spring官网https://spring.io&#xff0c;查看集成Nacos所需依赖 找到对应版本点击进入查看集成说明 然后再里面找到集成配置样例&#xff0c;这里只截一张&#xff0c;其他集成内容继续向下找 我的&#x…

蓝桥杯刷题计划-洛谷-持续更新

P8598 [蓝桥杯 2013 省 AB] 错误票据 题目 #include <bits/stdc.h> #define endl \n #define int long long #define INF 0x3f3f3f3f3f const int N 1000010; using namespace std; int arr[N]; signed main() {int N;cin>>N;int idx;while(cin>>arr[idx…

数据库审计和安全

互联网、云计算、物联网等新技术的应用&#xff0c;数据安全面临前所未有的挑战!我国信息安全已从终端安全、网络安全&#xff0c;发展到数据安全建设阶段。数据安全的核心是对“数据”全方位的安全防护&#xff0c;其产品及解决方案直接涉及国家和企业的核心机密 核心数据库存…

win10微软拼音输入法 - bug - 在PATH变量为空的情况下,无法输入中文

文章目录 win10微软拼音输入法 - bug - 在PATH变量为空的情况下&#xff0c;无法输入中文概述笔记实验前提条件100%可以重现 - 无法使用win10拼音输入法输入中文替代的输入法软件备注END win10微软拼音输入法 - bug - 在PATH变量为空的情况下&#xff0c;无法输入中文 概述 在…

ES6学习之路:迭代器Iterator和生成器Generator

迭代器 一、知识背景 什么是迭代器 迭代器就是在一个数据集合中不断取出数据的过程迭代和遍历的区别 遍历是把所有数据都取出迭代器注重的是依次取出数据&#xff0c;它不会在意有多少数据&#xff0c;也不会保证能够取出多少或者能够把数据都取完。比如斐波那契额数列&#…

linux nginx配置ssl, 实现https+ip访问

mkdir sslZhengShu openssl req -newkey rsa:2048 -nodes -keyout ca.key -out ca.csr openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt openssl genrsa -out server.key 2048 openssl req -new -key server.key -out server.csr 和之前输入一样即可 …

Python基本运算

1.逻辑运算符 第四行会有黄色的下划线是因为这个不是系统推荐的写法&#xff0c;系统推荐的是第五行的链式比较&#xff1b; 2.短路求值 对于and而言&#xff0c;左边的语句是false&#xff0c;那么整体一定是false,右边的表达式就不会进行计算&#xff1b; 对于or而言&…