首页 > 其他分享 >【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)

【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)

时间:2024-09-13 14:54:23浏览次数:13  
标签:map 洛谷 name 17 输出 题解 学生 found NAME

【深基17.例6】学籍管理

题目描述

您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)_字符串 条):

  • 插入与修改,格式1 NAME SCORE:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)_ci_02【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)_ci_03) 的学生。如果已经有同名的学生则更新这名学生的成绩为 SCORE。如果成功插入或者修改则输出OK
  • 查询,格式2 NAME:在系统中查询姓名为 NAME 的学生的成绩。如果没能找到这名学生则输出Not found,否则输出该生成绩。
  • 删除,格式3 NAME:在系统中删除姓名为 NAME 的学生信息。如果没能找到这名学生则输出Not found,否则输出Deleted successfully
  • 汇总,格式4:输出系统中学生数量。

输入格式

输出格式

样例 #1

样例输入 #1

5
1 lxl 10
2 lxl
3 lxl
2 lxl
4

样例输出 #1

OK
10
Deleted successfully
Not found
0

思路

使用一个 map<string, int> 类型的容器 m,用来存储学生的姓名和成绩。

在插入学生信息时,直接使用 map 的 [] 操作符将姓名和成绩插入即可。

在查询学生成绩时,使用 map 的 count 函数判断学生是否存在,如果存在则输出成绩,否则输出 Not found。

在删除学生信息时,同样使用 map 的 count 函数判断学生是否存在,如果存在则使用 map 的 erase 函数删除,否则输出 Not found。

在查询学生数量时,直接使用 map 的 size 函数获取 map 中元素数量即可。


AC代码

#include <iostream>
#include <map>
#define AUTHOR "HEX9CF"
using namespace std;

int main()
{
    int n;
    map<string, int> m;
    cin >> n;
    while (n--)
    {
        int op;
        string name;
        int score;
        cin >> op;
        switch (op)
        {
        case 1:
            cin >> name >> score;
            m[name] = score;
            cout << "OK" << endl;
            break;
        case 2:
            cin >> name;
            if (m.count(name))
            {
                cout << m[name] << endl;
            }
            else
            {
                cout << "Not found" << endl;
            }
            break;
        case 3:
            cin >> name;
            if (m.count(name))
            {
                m.erase(name);
                cout << "Deleted successfully" << endl;
            }
            else
            {
                cout << "Not found" << endl;
            }
            break;
        case 4:
            cout << m.size() << endl;
            break;
        }
    }
    return 0;
}

标签:map,洛谷,name,17,输出,题解,学生,found,NAME
From: https://blog.51cto.com/HEX9CF/12001014

相关文章

  • [EGOI2024] Infinite Race题解
    [EGOI2024]InfiniteRace妙妙题。我们设\(cnt[x]\)表示当Anika和第\(x\)位选手相遇时Anika至少几次经过终点线。设定初始状态\(cnt[x]=-1\)表示两种等价的情况:Anika还未和第\(x\)位选手相遇过Anika被第\(x\)位选手超越了因此只剩下Anika超越了第\(x\)位选手......
  • 洛谷P8208 [THUPC2022 初赛] 骰子旅行 题解 期望DP
    题目链接:https://www.luogu.com.cn/problem/P8208解题思路:定义\(d_u\)表示节点\(u\)的出度,定义\(V_u\)表示节点\(u\)一步能够走到的节点的集合。定义状态\(p_{u,c,v}\)表示从节点\(u\)出发走恰好\(c\)步的情况下,至少经过一次节点\(v\)的概率。则:若\(v=......
  • C++17新特性探索:拥抱std::optional,让代码更优雅、更安全
    std::optional背景在编程时,我们经常会遇到可能会返回/传递/使用一个确定类型对象的场景。也就是说,这个对象可能有一个确定类型的值也可能没有任何值。因此,我们需要一种方法来模拟类似指针的语义:指针可以通过nullptr来表示没有值。解决方法是定义该对象的同时再定义一个附加的......
  • 【运维】aarch64安装JDK17
    1、下载安装包[root@jenkinsapp]#uname-aLinuxjenkins4.18.0-80.7.2.el7.aarch64#1SMPThuSep1216:13:20UTC2019aarch64aarch64aarch64GNU/Linux这里是aarch64架构,所以下载jdk需要下载对应......
  • 题解 P4827【[国家集训队] Crash 的文明世界】
    从阶乘幂到斯特林数-caijianhong-博客园(cnblogs.com)题目描述Crash小朋友最近迷上了一款游戏——文明5(CivilizationV)。在这个游戏中,玩家可以建立和发展自己的国家,通过外交和别的国家交流,或是通过战争征服别的国家。现在Crash已经拥有了一个\(n\)个城市的国家,这......
  • 题解:CF1767E Algebra Flash
    可以在cnblogs中阅读。\(m\le40\)的数据范围提示让我们往颜色种类上考虑。由题每次可以跳\(1\)或\(2\)格,即存在一条从\(1\)到\(n\)的路径的充要条件是不存在两个相邻的未激活格。换句话说,对任意两个相邻的格子都必须选择至少一个激活。任意两个,至少一个,这样的条件......
  • 数据库tips17
    (十)、约束及索引类型约束的作用是为了防止可预见的错误的数据进入数据库中,是保障数据一致性的一种机制。UNIQUE约束是列级约束,表示关系中的记录在该列上的取值不重复。索引是通过建立索引列上的索引表,索引表中的査找项是索引列上的所有值的排序或散列(目的是为了快速查找),索引表中......
  • 洛谷P10504 守卫者的挑战 题解 概率DP
    题目链接:https://www.luogu.com.cn/problem/P10504状态\(f_{i,s,k}\)表示:当前正面临第\(i\)项挑战(此时第\(1\simi-1\)项挑战已完成,第\(i\)项挑战还没开始);目前已经挑战成功了\(s\)项(即第\(1\simi-1\)项挑战中共有\(s\)项挑战成功,\((i-1)-s\)项没挑战成功);......
  • [ARC101E] Ribbons on Tree 题解
    [ARC101E]RibbonsonTree题解其实算一道好题了。首先考虑不相关的simple的dp。平凡的想法是设\(dp_{i,j}\)表示\(i\)子树内有\(j\)个点还需要向上转移的方案数。转移式大概是个\(dp_{x,i+j}=dp_{y,i+j-1}+(dp_{p,i-1}+dp_{q,j-1})\)之类的东西。这样的dp是\(O(......
  • 2024.9.12 CF1783 VP
    A:先将\(a\)降序排序,此时只有位置\(2\)有可能不满足条件。找到最小的\(i\ge2\)使得\(a_1\neqa_i\)(不存在则无解),然后交换\(a_2,a_i\),即为一个解。点击查看代码#include<bits/stdc++.h>#defineintlonglong#definepsbkpush_back#definefstfirst#definescdse......