一开始是建立了course[2501][40001]数组,存储每节课的学生编号然后for循环两层输出,但这样复杂度为O(2500*40000),也很明显导致最后时间超时后来发现最多40000学生,每个学生最多选20门课,那么总共也就40000*20所以直接就存储学生-课程的信息,然后排个序,按照课程从小到大,课程一样的话则按字典序然后从头扫一遍即可,复杂度O(80000)不过要注意一点,有些课可能并没有出现,所以要做个判断,输出x 0. #include <iostream> #include…