2021 RoboCom 世界机器人开发者大赛-高职组复赛

2021 RoboCom 世界机器人开发者大赛-高职组复赛

前言

比赛的时候老师总是说,你们连高职都打不过。

题目都很简单,就直接贴一下代码吧。

1.人工智能打招呼

在这里插入图片描述

AC代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
set<string> s;
signed main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n;
    while (n--){
        string ss;
        cin>>ss;
        if (s.count(ss))
            cout<<"Hi "<<ss<<"! Glad to see you again!n";
        else
            cout<<"Hello "<<ss<<", how are you?n",s.insert(ss);
    }
    return 0;
}

2.人工智能数字翻译

在这里插入图片描述

AC代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
string a;int d;
signed main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>a>>d;
    if (d == 10){
        string s = "";
        int k = 1,num = 0;
        for (int i = a.length() - 1; i >= 0; --i) {
            num += k * (a[i] - '0');
            k *= 10;
        }
        if (num == 0){
            cout<<"0";
            return 0;
        }
        while (num){
            if (num % 27 < 10)
                s.insert(s.begin(),'0' + num % 27);
            else
                s.insert(s.begin(),num % 27 - 10 + 'A');
            num /= 27;
        }
        cout<<s;
    }
    else{
        int k = 1,num = 0;
        for (int i = a.length() - 1; i >= 0; --i) {
            if (a[i] <= '9')
                num += k * (a[i] - '0');
            else
                num += k * (a[i] - 'A' + 10);
            k *= 27;
        }
        cout<<num;
    }
    return 0;
}

3.机器人拼图

在这里插入图片描述

AC代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
int note[105][105];
signed main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for (int i = 1; i <= n * m; ++i) {
        string s;cin>>s;
        int x = 1,y = 1;
        for (int j = 0; j < s.length(); ++j) {
            switch (s[j]) {
                case '1':
                    y += 1;y = min(y,m);break;
                case '2':
                    x += 1;x = min(x,n);break;
                case '3':
                    y -= 1;y = max((long long)1,y);break;
                case '4':
                    x -= 1;x = max((long long)1,x);break;
                default:
                    if (!note[x][y])
                        note[x][y] = i;
                    break;
            }
        }
    }
    for (int i = 1; i <= n; ++i) {
        cout<<note[i][1];
        for (int j = 2; j <= m; ++j) {
            cout<<" "<<note[i][j];
        }
        cout<<"n";
    }
    return 0;
}

4.PAT基础级排名

在这里插入图片描述

AC代码

#include<bits/stdc++.h>
using namespace std;

#define int long long
#define psi pair<string,int>
int n,m;
int score[6] = {0,30,50,60,80,100};
vector<psi> v[6];
bool cmp(psi a,psi b){
    if (a.second == b.second)
        return a.first < b.first;
    return a.second > b.second;
}
signed main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for (int i = 0; i < n; ++i) {
        string s;int sco;
        cin>>s>>sco;
        if (sco > 80)
            v[5].push_back(psi(s,sco));
        else if (sco > 60)
            v[4].push_back(psi(s,sco));
        else if (sco > 50)
            v[3].push_back(psi(s,sco));
        else if (sco > 30)
            v[2].push_back(psi(s,sco));
        else
            v[1].push_back(psi(s,sco));
    }
    for (int i = 1; i <= 5; ++i)
        sort(v[i].begin(),v[i].end(),cmp);
    for (int i = m; i >= 1; --i) {
        int now = 1,now_bl = 0,sum = 0;
        for (int j = i; j >= 1; --j)
            sum += v[j].size();
        for (int j = 0; j < v[i].size(); ++j) {
            if (v[i][j].second == 0){
                cout<<v[i][j].first<<"n";
                continue;
            }
            if (j == 0){
                cout<<v[i][j].first<<" "<<i<<" "<<v[i][j].second<<"/"<<score[i]<<" "<<now<<"/"<<sum<<"n";
            }
            else{
                if (v[i][j].second == v[i][j - 1].second){
                    cout<<v[i][j].first<<" "<<i<<" "<<v[i][j].second<<"/"<<score[i]<<" "<<now<<"/"<<sum<<"n";
                    now_bl += 1;
                }
                else{
                    now += 1 + now_bl;now_bl = 0;
                    cout<<v[i][j].first<<" "<<i<<" "<<v[i][j].second<<"/"<<score[i]<<" "<<now<<"/"<<sum<<"n";
                }
            }
        }
    }
    return 0;
}

5.人工智能刑警

在这里插入图片描述

AC代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,a;
vector<int> v;string s;
map<vector<int>,string> mp;
signed main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for (int i = 0; i < n; ++i) {
        v.clear();
        for (int j = 0; j < m; ++j) {
            cin>>a;v.push_back(a);
        }
        cin>>s;
        mp[v] = s;
    }
    while (1){
        v.clear();
        for (int i = 0; i < m; ++i) {
            cin>>a;v.push_back(a);
        }
        if (v[0] == 0)
            break;
        if (mp[v] == "")
            cout<<"Passn";
        else
            cout<<mp[v]<<"n";
    }
    return 0;
}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>