#BW204. 普及组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;
}
假设 ,。
第 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) }}
相关
在下列比赛中:
