百度松果线上菁英班竞赛真题

这篇具有很好参考价值的文章主要介绍了百度松果线上菁英班竞赛真题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.MC0101冰雪大冒险(难度:白银)

2.MC0102房间打扫(难度:白银)

3.MC0103数字统计(难度:白银)

4.MC0104项链(难度:黄金)

 5.函数的幂

6.剧场

7.污渍

8.白给

9.新河妇荡杯

10.曼哈顿矩阵


1.MC0101冰雪大冒险(难度:白银)

题目描述

小码哥最近在玩一个游戏叫冰雪大冒险,这个游戏在一个n行m列的网格上进行。某些格子上 存在一些无法通过的障碍物,其余均是光滑的冰面。

玩家初始在其中一个非障碍物的格子上,且保持静止,然后他会通过操控角色进行上下左右移动,当他控制角色朝一个方向移动时,角色会在冰面上一直滑行。直到角色移动方向的下一个是障碍物或者超出图的边界时,角色才会停止移动,然后等待小码哥的下一个操作。

现在给出地图中所有障碍物的位置,小码哥的初始位置和小码哥的操作序列,请你求出小码哥最终停留的位置。

输入格式

 第一行输入两个数n,m(2<=n,m<=100),表示地图的行数和列数。

第二行输入两个整数x,y(1<=x<=n,1<=y<=m),表示小码哥初始时在第x行第y列。

第三行输入一个整数k(1<=k<=n*m-1),表示地图上障碍物的个数。

接下来k行,每行两个数字ai,bi,表示第i个障碍物在第ai行第bi列,保证障碍物不会重叠,而且不会出现在小码哥初始位置上。

最后一行输入一个长度不超过1000,包含LRUD四种字母的字符串,字母第i个字母表示小码哥第i步的运动方向。U表示向上,D表示向下,L表示向左,R表示向右。

输出格式:输出两个整数,用空格隔开,表示小码哥的最终位置。 

样例输入

5 5

2 2

6

1 3

1 5

3 4

4 2

5 3

5 5

DRDRULUR 

样例输出

1 2 

百度松果线上菁英班竞赛真题

解析:只需要模拟一下即可。

#include<bits/stdc++.h>

using namespace std;

const int N=110;

int a[N][N];
int n,m;
int x,y;
int t;

string s;

int main()
{
    cin>>n>>m;
    cin>>x>>y;
    cin>>t;
    
    while(t--)
    {
        int l,r;
        cin>>l>>r;
        a[l][r]=1;
    }
    
    cin>>s;
    
    for(int i=0;i<s.size();i++)
    {
        switch(s[i])
        {
            case 'U':
                while(1)
                {
                    if(a[x-1][y]==1||x==1) break;//只要不超过边界或者碰到障碍物,就一直走
                    x--;
                }
                break;
            case 'D':
                while(1)
                {
                    if(a[x+1][y]==1||x==m) break;
                    x++;
                }
                break;
            case 'L':
                while(1)
                {
                    if(a[x][y-1]==1||y==1) break;
                    y--;
                }
                break;
            case 'R':
                while(1)
                {
                    if(a[x][y+1]==1||y==m) break;
                    y++;
                }
                break;
        }
    }
    
    cout<<x<<" "<<y<<endl;
    
    return 0;
} 

2.MC0102房间打扫(难度:白银)

题目描述 

小码哥准备去打扫一件房间。这个房间可以简单地看成由n行n列,一共n*n个格子组成,每个格子的初始状态要么是干净的,要么是脏的。小码哥打扫房间的方式非常奇怪:如果他打扫了一个脏格子,这个格子就会变得很干净;反之亦然,如果打扫了一个干净的格子,就会变得很脏。

他想从n列的格子中选择几列进行打扫,希望打扫后完全干净的格子的行数尽可能多。注意:如果他选择了一列进行打扫,则它需要打扫这一列所有的格子;一行是干净,是指这一行所有的格子都是干净的。

小码哥并不是很擅长数学,于是希望你计算一下,如果他使用合理的打扫策略,完全打扫干净的行数最多可以有多少。

输入格式

第一行一个整数n(1<=n<=200),表示房间的大小。

接下来n行n列的01串,1表示干净的,0表示脏的。

输出格式

输出一个整数,表示最大可能的完全干净的行数。 

样例输入

5

10001

10001

10010

00101

10001 

样例输出

题解:看似是动态规划问题,实际是让统计哪种行数的状态最多,就拿上述例子来说,最多的初始行数为10001,数目为3,这样,开一个map哈希即可解决。

#include<bits/stdc++.h>
#include<map>
using namespace std;
const int N=1000;
char a[N][N];
map<string,int> mp;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        string b="";
        for(int j=1;j<=n;j++)
        {
            cin>>a[i][j];
            b+=a[i][j];
        }
        mp[b]++;
    }
    int ans=0;
    for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++)
    {
        if(ans<it->second)
            ans=it->second;
    }
    cout<<ans;
    return 0;
}

3.MC0103数字统计(难度:白银)

 题目描述

百度松果线上菁英班竞赛真题

#include<bits/stdc++.h>
using namespace std;
int f(int n)
{
    int l=n;
    int sum=0;
    while(l)
    {
        sum=sum*10+l%10;
        l/=10;
    }
    if(n%sum==0) return 1;
    return 0;
}
int main()
{
    int n,ans=0;
    cin>>n;
    for(int i=1;i<=n;i++)
        if(f(i)) ans++;
    cout<<ans;
    return 0;
}

4.MC0104项链(难度:黄金)

百度松果线上菁英班竞赛真题

百度松果线上菁英班竞赛真题

题解:一开始想的是dfs把所有排列都枚举处理,但会TLE,我们不能发现,问题的规模是存在一个序列使得式子成立,我们就拿1 2 3 4,他只存在4 1 3 2 使得式子值最大,规律就是把所有序列排好然后第一个是最大的,第二个是最小的,第三个是第二大的,第四个是第二小的......

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int a[N],b[N],vis[N];
int ans,n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    sort(a+1,a+n+1);
    int l=1,r=n;
    int x=0;
    while(l<=r)
    {
        b[++x]=a[r];
        b[++x]=a[l];
        l++;
        r--;
    }
    for(int i=1;i<n;i++)
    {
        int p=b[i]-b[i+1];
        if(p<0) p=-p;
        ans+=p;
    }
    ans+=abs(b[n]-b[1]);
    cout<<ans;
    return 0;
}

目录

 5.函数的幂

6.剧场

7.污渍

8.白给

9.新河妇荡杯

10.曼哈顿矩阵


 5.函数的幂

百度松果线上菁英班竞赛真题

递归函数的调用:

#include<iostream>
using namespace std;
int a;
int b;
int C;
int D;
int f(int a,int b)
{
    if(a==1) return (C*b+D)%10;
    return f(a-1,f(a-1,b));
}
int main()
{
    cin>>a>>b>>C>>D;
    cout<<f(a,b);
    return 0;
}

6.剧场

百度松果线上菁英班竞赛真题

思路: 还是进行模拟,这一题有一个坑,每一秒是先把后面的人都往后移一位,然后才能进入新的人。

#include<iostream>
using namespace std;
const int N=1000;
char a[N][N];
int main()
{
    int n;
    cin>>n;
    int t=n*n;
    //先进行初始化
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            a[i][j]='0';
    while(t--)
    {
        for(int i=n;i>=1;i--)
        {
            for(int j=n;j>=1;j--)
            {
                if(j==1)
                {
                    if(a[i][j]=='0'&&a[i-1][n]=='1')
                    {
                        a[i][j]='1';
                        a[i-1][n]='0';
                    }
                }
                else
                {
                    if(a[i][j]=='0'&&a[i][j-1]=='1')
                    {
                        a[i][j]='1';
                        a[i][j-1]='0';
                    }
                }
            }
        }
        char x;
        cin>>x;
        if(x=='1') a[1][1]='1';
        int ans=0;
        for(int i=1;i<=n;i++)
        {
            int sum=0;
            for(int j=1;j<=n;j++)
            {
                if(a[i][j]=='1') sum++;
            }
            if(sum!=0) ans++;
        }
        cout<<ans<<" ";
    }
    return 0;
}

7.污渍

百度松果线上菁英班竞赛真题

分析:只需要讨论几种情况即可:包含,相离,相交。

#include<iostream>
using namespace std;
int main()
{
    int a,b,v1,c,d,v2;
    cin>>a>>b>>v1>>c>>d>>v2;
    int x1=a,y1=b-v1,x2=a+v1,y2=b;
    int x3=c,y3=d-v2,x4=c+v2,y4=d;
    int m1,n1;
    int m2,n2;
    m1=max(min(x1,x2),min(x3,x4));
    n1=max(min(y1,y2),min(y3,y4));
    m2=min(max(x1,x2),max(x3,x4));
    n2=min(max(y1,y2),max(y3,y4));
    if(m2>m1&&n2>n1) 
        cout<<v1*v1+v2*v2-(m2-m1)*(n2-n1);//相交
    else 
        cout<<v1*v1+v2*v2;//相离
    return 0;
}

8.白给

百度松果线上菁英班竞赛真题

#include<iostream>

using namespace std;

int main()
{
    int x,y,n;
    cin>>x>>y>>n;
    while(n--)
    {
        if(x>=y)
        {
            int q=x/2;
            x=x-q;
            y=y+q;
        }
        else
        {
            int q=y/2;
            x=x+q;
            y=y-q;
        }
    }
    cout<<x<<" "<<y<<endl;
    return 0;
}

9.新河妇荡杯

百度松果线上菁英班竞赛真题

#include<iostream>

using namespace std;

int main()
{
    int a,b,c,s;
    cin>>a>>b>>c>>s;
    for(int i=1;;i++)
    {
        if(i/a+i/b+i/c==s)
        {
            cout<<i;
            break;
        }
    }
    return 0;
}

10.曼哈顿矩阵

百度松果线上菁英班竞赛真题

思路:找到规律即可,随便枚举一个数,找到四个象限之间和自己的坐标轴关系,如果是n,则它前面一定有 (n-1)!*4个数即可找到规律。

#include<iostream>
using namespace std;

int main()
{
    int x,y;
    cin>>x>>y;
    int n=abs(x)+abs(y);
    int sum=0;
    for(int i=0;i<n;i++)
        sum+=i;
    sum*=4;
    int ans=0;
    if(x>=1&&y>=0) ans=x;
    else if(x>=0&&y<0) ans=x-2*y;
    else if(x<=-1&&y<=0) ans=2*n-x;
    else if(x<=0&&y>0) ans=2*n+2*y-x;
    cout<<ans+sum;
    return 0;
}

  文章来源地址https://www.toymoban.com/news/detail-406351.html

到了这里,关于百度松果线上菁英班竞赛真题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 百度松果菁英班——机器学习实践六:股票行情爬取与分析

    飞桨AI Studio星河社区-人工智能学习与实训社区 这篇文章好像有点大,所以上边网页点进去是看不到的,进入环境之后就能看了 定义了一个函数 getHtml(url) ,用于获取指定URL页面的HTML内容。使用 requests.get() 方法发送GET请求,通过fake_useragent生成随机的User-Agent来伪装请求头,避

    2024年04月14日
    浏览(36)
  • 百度 测试|测试开发 面试真题|面经 汇总

    事业群:MEG base:北京 一面:2022.8.12 时长:50min 自我介绍 个人项目,我的项目是围绕着学校课程的项目来的,面试官就让我介绍这门课讲了些什么 (学校里)性能测试做了什么工作,性能测试中需要关注什么部分,我从前端和后端分开来讲的 接口测试关注的部分 实习中做

    2024年02月10日
    浏览(47)
  • 全国大学生信息安全竞赛初赛writeup(历年CISCN真题与解析)

    收录了大佬们参加全国大学生信息安全竞赛初赛的writeup和真题环境,方便学习,排名不分先后,谨参考完整度和CSDN站内优先原则。 在此,对大佬们的分享表示由衷的敬意和诚挚的感谢! 第十二、十三届全国大学生信息安全竞赛——创新实践能力赛原题 如果遇到打不开的链

    2024年02月06日
    浏览(66)
  • 华为OD机试真题2022&2023(C++)真题目录 + 考点 + 通过率

    本文是2024华为OD机试真题(C语言)专栏的目录贴(持续更新中…) 专栏介绍: 定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用C语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习 🔥2024华为OD机试真题(C C++ Java Py JS) B+C+D卷🔥 🔥20

    2024年02月05日
    浏览(195)
  • 2022新版电影站站群/百度泛目录站群/泛目录站群

    2022新版电影站站群/百度泛目录站群/泛目录站群 刚测试完,效果杠杠的,速度上车 限量版本只卖10套 速度上车 1、系统采用静态缓冲的形式,亲和搜索引擎,无需数据库,无后台 2、自定义、自定义文章内容,无需采集,首次导入后自行进行组合生成文章 3、采用无限

    2024年02月05日
    浏览(31)
  • 华为OD机试(2022&2023)真题目录 + 考点 + 复盘思路

    大家好,我是哪吒。 本专栏包含了最新最全的华为OD机试真题,有详细的分析和Java代码解答。已帮助1000+同学顺利通过OD机考,发现新题目,随时更新。 以下为华为OD机试真题题库。 1、华为OD机试真题B卷 Java 实现【最少交换次数】 2、华为OD机试真题B卷 Java 实现【内存资源分

    2024年02月01日
    浏览(43)
  • 华为OD机试(2022&2023)真题目录 + 考点 + 通过率

    大家好,我是哪吒。 本专栏包含了最新最全的华为OD机试真题,有详细的分析和Java代码解答。已帮助1000+同学顺利通过OD机考,发现新题目,随时更新。 华为OD机试是指华为公司的在线笔试,是华为公司用于筛选招聘岗位候选人的一种考核方式。 华为OD机试通常由多个题目组

    2024年02月02日
    浏览(121)
  • 华为OD机试真题2022&2023(Java C++ Python JS)真题目录 + 考点 + 通过率

    本文是华为OD机试真题(Python 语言) 专栏的目录贴(持续更新中…) 🔥2024华为OD机试真题(C C++ Java Py JS) B+C+D卷🔥 🔥2024华为OD机试真题(C语言) B+C+D卷🔥 🔥2024华为OD机试真题(Python语言) B+C+D卷🔥 🔥2024华为OD机试真题(Java 语言) B+C+D卷🔥 🔥2024华为OD机试真题(C++语言)B+C+D卷🔥

    2024年02月05日
    浏览(81)
  • 【华为OD机试真题 2022&2023】真题目录 已支持(C++&Java&python)100%通过率

    支持 (java/C++/python) 专栏所有代码都已经过充分验证,请放心取用,如有疑问,随时和博主联系!!! 通告: 为了让大家更容易看懂代码,现在开始会逐渐给所有代码增加 超详细注释+代码深度解读 ,争取让每一位同学都能清楚的理解代码的逻辑!!! 1:考试链接上写着【

    2024年02月05日
    浏览(36)
  • 华为OD机试(A&B卷)真题目录(Java)

    本专栏博客均转载自CSDN“伏城之外”的同名专栏,已获得“伏城之外”授权。 2023 B卷 “新加题”(100分值) 序号 题目 考点 or 实现 1 需要打开多少监控器 逻辑分析 2 告警抑制 逻辑分析 3 AI面板识别 逻辑分析 4 报文回路 逻辑分析 5 矩阵稀疏扫描 逻辑分析 6 阿里巴巴找黄金

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包