首页 > 其他分享 >23-4-20--STL--打印选课学生名单

23-4-20--STL--打印选课学生名单

时间:2023-04-20 23:11:45浏览次数:29  
标签:JAY9 20 选课 -- LOR6 int BOB5

题目一:

假设全校有最多40000名学生和最多2500门课程。现给出每个学生的选课清单,要求输出每门课的选课学生名单。

输入格式:

输入的第一行是两个正整数:N(≤40000),为全校学生总数;K(≤2500),为总课程数。此后N行,每行包括一个学生姓名(3个大写英文字母+1位数字)、一个正整数C(≤20)代表该生所选的课程门数、随后是C个课程编号。简单起见,课程从1到K编号。

输出格式:

顺序输出课程1到K的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号和选课学生总数(之间用空格分隔),之后在第二行按字典序输出学生名单,每个学生名字占一行。

输入样例:

10 5
ZOE1 2 4 5
ANN0 3 5 2 1
BOB5 5 3 4 2 1 5
JOE4 1 2
JAY9 4 1 2 5 4
FRA8 3 4 2 5
DON2 2 4 5
AMY7 1 5
KAT3 3 5 4 2
LOR6 4 2 4 1 5
 

输出样例:

1 4
ANN0
BOB5
JAY9
LOR6
2 7
ANN0
BOB5
FRA8
JAY9
JOE4
KAT3
LOR6
3 1
BOB5
4 7
BOB5
DON2
FRA8
JAY9
KAT3
LOR6
ZOE1
5 9
AMY7
ANN0
BOB5
DON2
FRA8
JAY9
KAT3
LOR6
ZOE1

思路:

建立一个vector存name,最后对于每个学科的vector进行sort排序,然后遍历输出。

代码如下:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<string>v[3000];
int numk[3000];

int main()
{
    int n,k;
    scanf("%d %d",&n,&k);
    
    while(n--)
    {
        string name;
        char ch[5];
        scanf("%s",ch);
        name=ch;
        int c;
        scanf("%d",&c);
        while(c--)
        {
            int t;
            scanf("%d",&t);
            numk[t]++;
            v[t].push_back(name); 
        } 
    }
    for(int i=1;i<=k;i++)
    {
        printf("%d %d\n",i,numk[i]);
        if(!v[i].empty() )
        {
            sort(v[i].begin() ,v[i].end() );
        }
        for(auto j=v[i].begin() ;j!=v[i].end() ;j++)
                {
                    printf("%s\n",(*j).c_str());
                }
    }
}

 

标签:JAY9,20,选课,--,LOR6,int,BOB5
From: https://www.cnblogs.com/daniel350-wang/p/17338700.html

相关文章

  • 2023.4.20每日总结
    今天完成了什么:今天完成了对于数据插入时进行确认时碰到的问题,现在已经可以成功的让用户确认及修改数据以及删除数据了遇到了哪些困难:在完成昨天碰到的问题之后,紧接着就转向了根据消费类型以及消费金额来生成相应的总账单图,不知如何下手,明天打算完成这部分明天打算做什么:完成根......
  • Exp5 信息搜集与漏洞扫描-20201324
    目录1各种搜索技巧的应用1.1搜索网址目录结构dir_listingbrute_dirs1.2利用搜索引擎的技巧普通检索采用字段设置1.3路由侦查2DNSIP注册信息的查询2.1whois查询2.2nslookup查询2.3dig域名查询2.4IP2Location地理位置查询2.5IP2反域名查询3基本的扫描技术:主机发现、端口......
  • 学好虚拟化,首先要学Linux
    上次讲到了虚拟化的基础知识,比如虚拟化的应用、各个厂商都是通过何种技术路径来实现的等等,本篇想记录一下我学习到的CPU内存虚拟化和网络虚拟化相关知识,通过记录来制造反馈,让自己更有效地学习。需要注意的是,学习虚拟化就免不了和Linux打交道了。 在此之前还是回顾一下虚拟化的......
  • 学好虚拟化,首先要学Linux
    上次讲到了虚拟化的基础知识,比如虚拟化的应用、各个厂商都是通过何种技术路径来实现的等等,本篇想记录一下我学习到的CPU内存虚拟化和网络虚拟化相关知识,通过记录来制造反馈,让自己更有效地学习。需要注意的是,学习虚拟化就免不了和Linux打交道了。 在此之前还是回顾一下虚拟化的......
  • 学好虚拟化,首先要学Linux
    上次讲到了虚拟化的基础知识,比如虚拟化的应用、各个厂商都是通过何种技术路径来实现的等等,本篇想记录一下我学习到的CPU内存虚拟化和网络虚拟化相关知识,通过记录来制造反馈,让自己更有效地学习。需要注意的是,学习虚拟化就免不了和Linux打交道了。 在此之前还是回顾一下虚拟化的......
  • 4.20团队
      优化百度智能识别接口。保存人脸数据并绑定用户。......
  • python_面向对象
    魔法函数魔术访达的一些说明23-24魔术方法并不是来自继承,而是python自带的这些方法,跟类没有关系__getitem__方法因为实现了__getitem__(),所以可以直接遍历这个student对象__getitem__方法的参数item就是相当于数组的下标13行对象实例化对象进行切片操作......
  • 2023/4/20
    百钱百鸡问题公鸡5r/只  母鸡3r每只 小鸡1r/3只 #include<stdio.h>intmain(){intg,m,x;for(g=0;g<=20;g++)     //注意不能用 i , j 控制循环for(m=0;m<=33;m++){x=100-g-m; if(5*g+3*m+x/3.0==100)    //注意是3.0 printf("%......
  • 团队(PM)人脸识别
    我们这个人脸识别的项目预期:两个星期。目前已经花的时间:10天。完成进度:目前已经完成了95%。整个项目的流程可以顺利的进行。公开任务看板照片: 燃尽图:  产品状态:产品基本已经完成了。(只剩下一些功能的优化和一些测试) ......
  • 每日总结 4.20
    今天进行了供货商页面的设计,对于数据的处理实现对应付金额的显示,对于登录显示用户名,明天进行补货,对于每个用户发送的信息进行补货。packagequeren;importtoolse.Tool;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importj......