• PAT A1047 Student List for Course [字符串映射]


    题目描述

    链接
    给出选课人数和课程数目,然后再给出每个人的选课情况,请针对每门课程输出选课人数以及所有选该课的学生姓名,按照字典序

    分析

    • 输入的是:人名 课程id,输出的是 课程id 人名
    • 实际要完成的是人名到课程id的映射
    • 如何不用STL来做
    • name[人数][人名长度] 表示(i)号人的名字,course[课程id].push_back(i) 表示上id号课程的人的编号
      • 实现了名字到名字编号的映射,课程编号和名字编号的对应!!!关键是用人的编号!!代替这个人
    #include<bits/stdc++.h>
    using namespace std;
    
    vector<int> course[2550];
    char name[40020][10];
    int n,k,c,id;
    bool cmp(int x, int y){
        return (strcmp(name[x], name[y]) < 0);
    }
    int main(){
        scanf("%d%d",&n,&k);
        for(int i=0;i<n;i++){
            scanf("%s%d",name[i],&c);
            for(int j=0;j<c;j++){
                scanf("%d",&id);
                course[id].push_back(i);
            }
        }
        for(int i=1;i<=k;i++){
            printf("%d %d
    ",i,course[i].size());
            sort(course[i].begin(), course[i].end(), cmp);
            for(int j=0;j<course[i].size();j++){
                printf("%s
    ",name[course[i][j]]);
            }
        }
    
    
    }
    
    
  • 相关阅读:
    第一阶段SCRUM冲刺10
    第一阶段SCRUM冲刺09
    第一阶段SCRUM冲刺08
    单词统计续
    第十一周学习报告
    第一阶段SCRUM冲刺07
    第一阶段SCRUM冲刺06
    第一阶段SCRUM冲刺05
    十天冲刺08
    十天冲刺07
  • 原文地址:https://www.cnblogs.com/doragd/p/11317361.html
Copyright © 2020-2023  润新知