2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)

本文详细介绍了2019年广东工业大学腾讯杯新生程序设计竞赛的同步赛题目,包括最值问题、模拟、思维挑战、算数计算等多个方面的算法解析,涉及STL库的应用和多种策略的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同步赛链接

A-原初的信纸(最值,STL)

题意:

找 n 个数的最大值.

参考代码:

void solve() {
    int n;
    std::cin >> n;
    std::vector<int> a(n);
    for (auto &c : a)
        std::cin >> c;
    std::cout << *max_element(a.begin(), a.end()) << '\n';
}

B-骑士的对决(思维)

模拟题.(博弈)

思路:

从守卫骑士的两张牌入手,如果守卫骑士拥有 'S'  和 ‘J’,那么对于远征骑士,如果他拥有‘S’那么,出于守卫骑士已经知道远征骑士选的牌了,所以他会选择 ‘S’ ,这样就是平局,相反,如果远征骑士拥有 'J' ,那么守卫骑士必定拿出 ‘S’来战胜对方,如果远征骑士拥有 ‘B’,那么守卫骑士必定拿出 ‘J’来战胜对方,所以要么平局,要么是守卫骑士赢.剩下的两种情况参考第一种情况进行模拟即可.

参考代码:

#include <bits/stdc++.h>

//模拟

using ll = long long;

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    char c;
    std::string s;
    std::cin >> s >> c;
    std::map<char, bool> mp;
    mp[s[0]] = true, mp[s[1]] = true;
    if (mp['S'] && mp['J'])
    {
        if (c == 'S') {
            std::cout << "lyrnb";
        } else {
            std::cout << "pmznb";
        } 
    } else if (mp['S'] && mp['B']) {
        if (c == 'B') {
            std::cout << "lyrnb";
        } else {
            std::cout << "pmznb";
        }
    } else {
        if (c == 'J') {
            std::cout << "lyrnb";
        } else {
            std::cout << "pmznb";
        }  
    }
    return 0;
}

C-秘密的议会(算数)

直接计算即可.

参考代码:

void solve() {
    int cnty{}, cntn{};
    std::string s;
    std::cin >> s;
    std::transform(s.begin(), s.end(), s.begin(), ::tolower);
    for (char c : s) {
        cnty += (c == 'y');
        cntn += (c == 'n');
    }
    int len = s.size();
    if (cnty >= len / 2) {
        std::
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值