B. 普及组CSP-J初赛程序阅读训练04

    客观题

普及组CSP-J初赛程序阅读训练04

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

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

using i64 = long long;

const i64 k = 3;
const i64 mod = 8;

i64 toint(string s)
{
    sort(s.begin(), s.end());
    i64 ans = 0;
    for(int i = 0; i < s.length(); i++)
        ans = (ans * k + (s[i] - 'a' + 1)) % mod;
    return ans;
}

vector<vector<string>> solve(vector<string>& strs)
{
    map<i64, vector<string>> mp;
    for(auto s: strs)
        mp[toint(s)].push_back(s);
    vector<vector<string>> ans;
    for(auto v: mp)
        ans.push_back(v.second);
    return ans;
}

int main()
{
    int n;
    cin >> n;
    vector<string> vec(n);
    for(int i = 0; i < n; i++)
        cin >> vec[i];
    auto ans = solve(vec);
    for(auto v: ans)
        for(int i = 0; i < v.size(); i++)
            cout << v[i] << " \n"[i == v.size() - 1];
    return 0;
}

假设 1n1031 \le n \le 10^31vec[i].length()1031 \le \text{vec}[i].\text{length}() \le 10^3


第 1 题

若程序输入 6 eat tea tan ate nat bat,则程序输出 bat(换行)eat tea ate(换行)tan nat(换行)
{{ select(1) }}

  • 正确
  • 错误

第 2 题

对于这段代码,toint("aaf") != toint("atmoa")
{{ select(2) }}

  • 正确
  • 错误

第 3 题

若将头文件 <bits/stdc++.h> 换为 <iostream>,程序依然可以正常运行。
{{ select(3) }}

  • 正确
  • 错误

第 4 题

若输入 4 aad zpf zpz yyl,则输出是什么?
{{ select(4) }}

  • aad(换行)zpf(换行)zpz(换行)yyl(换行)
  • aad zpf(换行)zpz yyl(换行)
  • aad zpf zpz(换行)yyl(换行)
  • aad zpf zpz yyl(换行)

第 5 题

这个程序的时间复杂度是多少?
{{ select(5) }}

  • O(n)O(n)
  • O(n2)O(n^2)
  • O(nlogn)O(n \log n)
  • (O(n2logn)(O(n^2 \log n)

2026年08月28日CSP-J初赛专项训练

未参加
状态
已结束
规则
IOI
题目
3
开始于
2026-8-28 12:00
结束于
2026-9-3 18:00
持续时间
150 小时
主持人
参赛人数
23