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

文章目录

      • 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.mzph.cn/news/778949.shtml

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

相关文章

Tomcat项目创建 以及 在IDEA当中集成Tomcat

一: 有关Tomcat的WEB项目创建 TOMCAT项目的创建有两种方式, 第一种是利用骨架进行创建, 第二种是利用填补进行相应的创建, 不适用骨架进行创建 ,在这里主要聊第二种 (使用IDEA版本为2023) 1. 创建MAVEN项目, 非骨架形式 2.在相应的pom文件当中设置打包方式 为 war包的打包形…

基于Java在线考试系统系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

HarmonyOS 应用开发之任务(Mission)与启动模式

如前文所述&#xff0c;一个UIAbility实例对应一个任务。UIAbility实例个数与UIAbility配置的启动模式有关。在FA模型下&#xff0c;通过config.json配置文件中的“launchType”属性配置&#xff1b;在Stage模型下&#xff0c;通过 module.json5配置文件 中的“launchType”属性…

兆欧表揭秘:到底是摇表还是电器?

兆欧表&#xff0c;又称摇表&#xff0c;是一种用于测量电气设备、电缆、电机绕组等绝缘电阻的测试工具。虽然现代兆欧表采用电动型和电池供电等多种形式&#xff0c;但其基本功能和用途保持一致。早期的兆欧表多采用手动机械式设计&#xff0c;通过手柄摇动发电来提供所需的高…

OpenCV4.9关于矩阵上的掩码操作

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:如何使用OpenCV扫描图像、查找表和时间测量 下一篇:OpenCV4.9的是如何进行图像操作 引言&#xff1a; 矩阵上的掩码操作非常简单。这个想法是&#xff0c;我们根据掩码矩阵&#xff08…

海外媒体发稿:3种媒体宣发套餐内容推广方法

现如今&#xff0c;伴随着信息技术的不断进步和推广&#xff0c;新闻媒体宣发变成企业品牌推广的重要手段之一。为了方便让新闻信息新闻资讯传递给目标群体&#xff0c;公司一般会选择不同的套餐内容和推广方法。下面我们就详细介绍3种新闻资讯新闻媒体宣发套餐内容推广方法。 …

kubernetes(K8S)学习(九):K8S之日志监控

K8S之日志监控 一、Log and Monitor1.1 Log1.1.1 容器级别1.1.2 Pod级别1.1.3 组件服务级别1.1.4 LogPilot ES Kibana 1.2 Monitor1.2.1 Prometheus简介1.2.2 Prometheus架构1.2.3 Prometheus知识普及1.2.4 数据采集1.2.5 Prometheus Grafana 二、Trouble Shooting&#xff…

项目Weblogic切换Tomcat-包含数据源配置

目录 准备工作 修改Tomcat配置 Tomcat数据源加密 解密 加密 部署 问题解决 1.执行启停脚本时候&#xff0c;爆出&#xff1a;Cannot find ./catalina.sh The file is absent or does not have... 2.org.apache.catalina.core.StandardService.initInternal Failed to …

UE中:200W个对象单场景实现(待更新)

实现背景&#xff1a;需要显示城市级的行人以及地理市级范围内的路灯的状态&#xff0c;行人需要有状态以及位置的更新&#xff0c;路灯只需要状态的更新&#xff0c;二者都不需要物理 方案1概述&#xff1a;Niagara粒子系统实现 实际效果展示 UE5 集群模拟&#xff08;20W&a…

Oracle 控制文件详解

1、控制文件存储的数据信息 1&#xff09;数据库名称和数据库唯一标识符&#xff08;DBID) 2&#xff09;创建数据库的时间戳 3&#xff09;有关数据文件、联机重做日志文件、归档重做日志文件的信息 4&#xff09;表空间信息 5&#xff09;检查点信息 6&#xff09;日志序列号…

python包和模块导入方式,random函数的用法

binary&#xff1a;二进制 模块&#xff08;module&#xff09;&#xff1a; 一般而言&#xff0c;在python中&#xff0c;XXX.py文件就可以认定为一个模块 一个模块一般是用来存放和管理一类功能的一个文件 包&#xff08;package&#xff09;&#xff1a; 文件夹&#xff0…

硬件10、从网站获取封装

百度搜索IC封装网或者网址https://www.iclib.com/ 搜索想要的器件&#xff0c;直接下载他的原理图库和封装库

1.Mysql基础入门—MySQL-mysql 8.0.11安装教程

1.Mysql基础入门—MySQL-mysql 8.0.11安装教程 摘要个人简介下载Mysql安装Mysql配置环境变量 摘要 MySQL 8.0.11的安装过程涉及几个关键步骤&#xff0c;首先访问MySQL官方网站下载页面&#xff0c;选择操作系统相对应的MySQL版本进行下载。对于Windows用户&#xff0c;启动下…

SpringCloudConfig 使用git搭建配置中心

一 SpringCloudConfig 配置搭建步骤 1.引入 依赖pom文件 引入 spring-cloud-config-server 是因为已经配置了注册中心 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</…

计算机网络(03)

计算机网络&#xff08;02&#xff09; 三层交换机 普通交换机叫做 二层交换机三层交换机 二层交换 三层路由 .VLAN 互通 虚拟接口 在三层交换机上配置的VLAN接口为虚拟接口使用***Vlanif ( VLAN虚拟接口 )***实现VLAN间的路由VLAN的接口引入使得应用更加灵活 三层交换…

浅谈 kafka

引言 同事在公司内部分享了关于 kafka 技术一些相关的内容&#xff0c;所以有了这篇文章&#xff1b;部分图片选自网络摘抄&#xff1b; 1 Kafka概述 1.1 定义 Kafka传统定义&#xff1a;kafka是一个分布式的基于发布/订阅模式的消息队列。 Kafka最新定义&#xff1a;kafka…

东莞交投集团供应链服务平台上线啦

2021年&#xff0c;东莞市交通投资集团有限公司&#xff08;以下简称“东莞交投集团”&#xff09;开展物资采购供应管理的改进研究。2022年&#xff0c;为充分挖掘数据价值&#xff0c;赋能采购管理&#xff0c;探索物资全生命周期管理&#xff0c;集团以降本增效为目标&#…

IT廉连看——SpringBoot——SpringBoot简介

IT廉连看——SpringBoot——SpringBoot简介 1、Spring优缺点 spring优点 Spring是Java企业版&#xff08;Java Enterprise Edition&#xff0c;JEE&#xff0c;也称J2EE&#xff09;的轻量级代表。无需开发重量级的EnterpriseJavaBean&#xff08;EJB&#xff09;&#xff0…

iOS UIFont-实现三方字体的下载和使用

UIFont 系列传送门 第一弹加载本地字体:iOS UIFont-新增第三方字体 第二弹加载线上字体:iOS UIFont-实现三方字体的下载和使用 前言 在上一章我们完成啦如何加载使用本地的字体。如果我们有很多的字体可供用户选择,我们当然可以全部使用本地字体加载方式,可是这样就增加了…

在项目中缓存如何优化?SpringCache接口返回值的缓存【CachePut、CacheEvict、Cacheable】

SpringCache 介绍&#xff08;不同的缓存技术有不同的CacheManager&#xff09;注解入门程序环境准备数据库准备环境准备注入CacheManager引导类上加EnableCaching CachePut注解(缓存方法返回值)1). 在save方法上加注解CachePut2). 测试 CacheEvict注解&#xff08;清理指定缓存…