第十一章 模拟 7 AcWing 1531. 课程学生列表

矫情吗;* 2024-03-31 12:33 156阅读 0赞

第十一章 模拟 7 AcWing 1531. 课程学生列表

原题链接

AcWing 1531. 课程学生列表

算法标签

模拟

思路

使用二维数组存储依题意每门课程对应学生id, 依题意模拟

代码

  1. #pragma GCC optimize(2)
  2. #pragma GCC optimize(3)
  3. #include<bits/stdc++.h>
  4. #define int long long
  5. #define xx first
  6. #define yy second
  7. #define ump unordered_map
  8. #define us unordered_set
  9. #define pq priority_queue
  10. #define rep(i, a, b) for(int i=a;i<b;++i)
  11. #define Rep(i, a, b) for(int i=a;i>=b;--i)
  12. using namespace std;
  13. typedef pair<int, int> PII;
  14. const int N=10005, inf=0x3f3f3f3f3f3f3f3f, mod=1e9+7;
  15. const double Exp=1e-8;
  16. //int t, n, m, cnt, ans;
  17. int n, k, c, a;
  18. string s;
  19. vector<string> le[N];
  20. char ch[5];
  21. inline int rd(){
  22. int s=0,w=1;
  23. char ch=getchar();
  24. while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
  25. while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
  26. return s*w;
  27. }
  28. void put(int x) {
  29. if(x<0) putchar('-'),x=-x;
  30. if(x>=10) put(x/10);
  31. putchar(x%10^48);
  32. }
  33. signed main(){
  34. ios::sync_with_stdio(false);
  35. cin.tie(0);
  36. cout.tie(0);
  37. scanf("%lld%lld", &n, &k);
  38. while(n--){
  39. scanf("%s%lld", ch, &c);
  40. s=ch;
  41. while(c--){
  42. scanf("%lld", &a);
  43. le[a].push_back(s);
  44. }
  45. }
  46. rep(i, 1, k+1){
  47. printf("%lld %lld\n", i, le[i].size());
  48. sort(le[i].begin(), le[i].end());
  49. rep(j, 0, le[i].size()){
  50. printf("%s\n", le[i][j].c_str());
  51. }
  52. }
  53. return 0;
  54. }

参考文献

AcWing 1531. 课程学生列表(PAT甲级辅导课)y总视频讲解

原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,156人围观)

还没有评论,来说两句吧...

相关阅读