传统题 1000ms 256MiB

不靠谱的编号算法

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

不靠谱的编号算法

【题目描述】

有多篇文章,每篇文章中只包含英文字母、数字、四个特殊字符(@#$%),且文章中末尾有一个 .,该符号有且仅有一个,表示文章结束。

Hacker为了对这些文章进行编号,于是想了一个不靠谱的编号算法,就是将每篇文章中英文字母出现次数加上数字与特殊字符出现次数的乘积,并对997取余,最后结果即为该文章的编号。

形式化的讲:设英文字母、数字、特殊字符出现次数分别为 a,b,ca,b,c,则该文章的编号为 (a+b×c)%997(a+b\times c)\%997

这样的编号算法不会因为文章数量的变化而改变文章的编号,但是其缺点也十分明显,就是可能多篇文章对应同一编号,但当模数足够大可以一定程度上避免这个缺点的影响。

你知道这种算法属于什么思想吗?

对它的缺点,你有什么改进的思路吗?-----之后可以思考一下哦!

【输入格式】

输入一行字符串,表示一篇文章,结尾一定是英文符号’.’。

【输出格式】

输出一个整数,表示该文章经过这个不靠谱编号算法后得到的编号。

【输入输出样例】

输入样例 输出样例
样例1 Abcd$123. 7
样例2 2024@welcomes#everyone. 24

【样例1解释】英文字母有4个、数字有3个、特殊字符有1个,则 (4+3×1)%997=7(4+3\times 1)\%997=7

【样例2解释】英文字母有16个、数字有4个、特殊字符有2个,则 (16+4×2)%997=24(16+4\times 2)\%997=24

【数据范围】

假设文章中字符数量为n,对于100%的数据,n≤1000。

2024级计算机程序设计基础-语法赛

未参加
状态
已结束
规则
IOI
题目
15
开始于
2024-12-7 9:00
结束于
2024-12-8 9:00
持续时间
5 小时
主持人
参赛人数
143