栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

深信服2022届秋招C/C++开发笔试题C卷 厨师做饭 机器人大赛

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

深信服2022届秋招C/C++开发笔试题C卷 厨师做饭 机器人大赛

32 厨师做饭

一个厨师出售1~6种不同的食物,每种食物都需要使用各自的特殊厨具,厨师的灶台最多只能同时摆放3种厨具,所以厨师决定空间不够时就更换最久没使用过的厨具。每种食物烹饪都需要15分钟,更换一次厨具需要6分钟。请计算按点单顺序完成输入的点单列表所需时间。

输入描述

每行一个数字,1~6代表6种订单,7代表结束

输出描述

一个数字,代表厨师需要的总时间

示例1

输入

2
2
5
6
4
2
4
6
5
2
3
3
3
3
4
6
1
5
1
1
7

输出

354

// 本题为考试多行输入输出规范示例,无需提交,不计分。
#include 
#include 

using namespace std;


int main(){
    int x[3] = {}, cur = 0;
    int a;
    int res = 0;
    while (cin>>a) {
        if (a == 7) {
            break;
        }
        int flag = 0;
        for (int i = 0; i < 3; i++) {
            if (x[i] == a) {
                flag = 1; break;
            }
        }
        res += 15;
        if (!flag) {
            res += 6;
        }
        for (int i = 1; i >= 0; i--) {
            if (x[i] != a) x[i+1] = x[i];
        }
        x[0] = a;
    }
    //第一次不需要不需要更换厨具
    for (int i = 0; i < 3; i++) if (x[i]) {
        res -= 6;
    }
    cout  << res;
    return 0;
}
33 机器人大赛

小明参加机器人大赛,比赛的场地是一个n*m的方块。

现在规定,机器人从左上角出发,前往右下角。因为时间紧张,小明只设计出了最简单的智能算法,他的机器人只会向下或者向右。

小明现在想知道,一共有多少种方案能达到终点?

输入描述

输入的第一行是两个整数n, m (1<=n,m<=10)

接下来的n行,每行m个数字

数字只会是0或者1

0代表可以通过,1代表障碍物

数据保证起点终点一定是0

输出描述

一个正整数ans,表示方案数

数据随机生成,且保证答案不超过2^31

示例1

输入

5 5
0 1 0 0 0
0 1 0 0 0
0 1 0 0 0
0 1 0 0 0
0 0 0 0 0

输出

1

示例2

输入

10 10
0 0 0 0 0 0 1 0 1 0
0 1 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 1 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0

输出

3463

// 本题为考试多行输入输出规范示例,无需提交,不计分。
#include 
#include 

using namespace std;

int n, m, a[11][11];
int dp[11][11];
int main(){
    cin >> n >> m;
    for (int i = 0 ; i < n ; i++) {
        for (int j  = 0 ; j < n; j++) {
            cin >> a[i][j];
        }
    }
    dp[0][0] = 1;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (a[i][j] == 1) continue;
            if (i > 0 && a[i-1][j] == 0) {
                dp[i][j] += dp[i-1][j];
            }
            if (j > 0 && a[i][j-1] == 0) {
                dp[i][j] += dp[i][j-1];
            }
        }
    }
    cout << dp[n-1][m-1];
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号