1 条题解

  • 0
    @ 2026-6-19 10:30:39

    📝 题目大意

    给定 AtCoder 算法部门排名前 10 的玩家昵称之一 SS,输出该玩家对应的评级(rating)。题目直接给出了 10 个昵称与评级的对照表,只需要查表输出即可。

    💡 解题思路

    1. 题目分析:输入保证 SS 是给定的 10 个昵称之一,数据范围极小(仅 10 条记录),无需任何复杂数据结构。
    2. 算法推导:直接使用 if-else 链或 switch-case 对输入的字符串进行匹配,匹配到对应的昵称后输出其评级。由于仅有 10 个固定映射,时间复杂度为常数。
    3. 边界与细节:输入保证合法,无需处理不存在的昵称情况。注意字符串大小写敏感,必须严格匹配。

    ⏱️ 复杂度分析

    • 时间复杂度O(1)O(1),最多 10 次字符串比较,均为常数级。
    • 空间复杂度O(1)O(1),仅使用一个字符串变量存储输入。

    💻 标准代码 (C++)

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	string a;
    	cin >> a;
    	// 根据输入昵称查表输出对应评级
    	if(a == "tourist"){
    		cout << "3858";
    	}else if(a == "ksun48"){
    		cout << "3679";
    	}else if(a == "Benq"){
    		cout << "3658";
    	}else if(a == "Um_nik"){
    		cout << "3648";
    	}else if(a == "apiad"){
    		cout << "3638";
    	}else if(a == "Stonefeang"){
    		cout << "3630";
    	}else if(a == "ecnerwala"){
    		cout << "3613";
    	}else if(a == "mnbvmar"){
    		cout << "3555";
    	}else if(a == "newbiedmy"){
    		cout << "3516";
    	}else if(a == "semiexp"){
    		cout << "3481";
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    731
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者