日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7-47 打印选课学生名单 (25 分)(两种做法)(思路加详解+map+vector做法+最后一个点超时解决)+兄弟们冲丫丫

發(fā)布時間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7-47 打印选课学生名单 (25 分)(两种做法)(思路加详解+map+vector做法+最后一个点超时解决)+兄弟们冲丫丫 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一:題目

假設(shè)全校有最多40000名學(xué)生和最多2500門課程。現(xiàn)給出每個學(xué)生的選課清單,要求輸出每門課的選課學(xué)生名單。

輸入格式:
輸入的第一行是兩個正整數(shù):N(≤40000),為全校學(xué)生總數(shù);K(≤2500),為總課程數(shù)。此后N行,每行包括一個學(xué)生姓名(3個大寫英文字母+1位數(shù)字)、一個正整數(shù)C(≤20)代表該生所選的課程門數(shù)、隨后是C個課程編號。簡單起見,課程從1到K編號。

輸出格式:
順序輸出課程1到K的選課學(xué)生名單。格式為:對每一門課,首先在一行中輸出課程編號和選課學(xué)生總數(shù)(之間用空格分隔),之后在第二行按字典序輸出學(xué)生名單,每個學(xué)生名字占一行。

輸入樣例:

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

二:思路

思路:1.用map容器<int,string>;每門課對應(yīng)一群學(xué)生
2.然后截取字符串,題目給出的是名字是的格式是固定的
3.然后用vector容器 用其sort方法排序的功能(字典序也就是 sort()排序 )

三:上碼

方法一:

/**思路:1.用map容器<int,string>;每門課對應(yīng)一群學(xué)生2.然后截取字符串,題目給出的是名字是的格式是固定的3.然后用vector容器 用其sort方法排序的功能(字典序也就是 sort()排序 ) */ #include<bits/stdc++.h> using namespace std; map<int,string>m1; map<int,string>::iterator mt;int main(){int N,K;int count = 1;cin >> N >> K;for( int i = 0; i < N; i++ ){char ch[6];scanf("%s",ch);int n;cin >> n;for( int j = 0; j < n; j++){int course;cin >> course;m1[course] += ch;} }for( mt = m1.begin(); mt != m1.end(); mt++){vector<string>v;string str = mt->second;if( mt->first != count){cout << count << ' ' << "0" << endl; }count++;printf("%d %d\n",mt->first,str.size() / 4);for( int i = 0; i < str.size(); i = i + 4 ){v.push_back(str.substr(i,4));}sort(v.begin(),v.end());for( int i = 0; i < v.size(); i++ ){printf("%s\n",(v[i]).c_str());}}} //10 5 //ZOE1 2 4 5 //ANN0 3 5 2 1 //BOB5 4 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

方法二:

/**思路:用vector的一對多 即一個課程編號對應(yīng)好幾個名字 */ #include<bits/stdc++.h> using namespace std;int main(){int N,K;vector <string> v[2600];scanf("%d%d",&N,&K);for(int i = 0; i < N; i++){int nums;char name[6];scanf("%s%d",name,&nums);for(int j = 0; j < nums; j++){int course;scanf("%d",&course);v[course].push_back(name);} } for(int i = 1; i <= K; i++){printf("%d %d\n",i,v[i].size());sort(v[i].begin(),v[i].end());// for(string name:v[i]){ // printf("%s\n",name.c_str()); // }for(int j = 0; j < v[i].size(); j++){printf("%s\n",v[i][j].c_str());}}}

四:超時解決:

本題當(dāng)中,需要把輸出輸出改為scanf 和printf 否則最后一個點會出現(xiàn)超時問題

五:知識速遞(vector和map的基本用法 不了解的兄弟們可以學(xué)一下哈)

map的基本用法
vector的基本用法

六:記錄失敗碼

這個碼在處理學(xué)生的具體名字時,我用的是set容器,但是最后一個測試點過不去,用cin cout 就運行超時,換成sancf 和printf就答案錯誤 腦殼疼。我就換成vector ,然后就和過去了。

/**思路:1.用map容器<int,string>;每門課對應(yīng)一群學(xué)生2.然后截取字符串,題目給出的是名字是的格式是固定的3.然后用set容器 用其自動排序的功能(字典序也就是 sort()排序 ) */ #include<bits/stdc++.h> using namespace std;int main(){int N,K;int count = 1;map<int,string>m1;map<int,string>::iterator mt;cin >> N >> K;for( int i = 0; i < N; i++ ){string name;cin >> name;int n;cin >> n;for( int j = 0; j < n; j++){int course;cin >> course;m1[course] += name;} }for( mt = m1.begin(); mt != m1.end(); mt++){set<string>s1;set<string>::iterator st;string str = mt->second;if( mt->first != count){cout << count << ' ' << "0" << endl; }count++;cout << mt->first << ' ' << str.size() / 4 << endl;for( int i = 0; i < str.size(); i = i + 4 ){s1.insert(str.substr(i,4)); }for( st = s1.begin(); st != s1.end(); st++ ){cout << *st << endl;}}} //10 5 //ZOE1 2 4 5 //ANN0 3 5 2 1 //BOB5 4 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

總結(jié)

以上是生活随笔為你收集整理的7-47 打印选课学生名单 (25 分)(两种做法)(思路加详解+map+vector做法+最后一个点超时解决)+兄弟们冲丫丫的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 深夜免费视频 | 日韩精品v | 成人午夜激情视频 | 亚洲熟悉妇女xxx妇女av | 一本免费视频 | 亚洲精品成人无码毛片 | 致命弯道8在线观看免费高清完整 | 国产精品123 | 久久精品久久国产 | 青草99 | 黄色三级带 | 国产精品sm调教免费专区 | 99精品视频网站 | 欧美日韩免费高清 | 久一国产 | 91爱在线观看 | 久久9久久 | 日本55丰满熟妇厨房伦 | 国产一级片免费在线观看 | 黄色免费在线网站 | 伊人网在线观看 | 色婷婷av一区二区三区四区 | 亚洲欧美日韩在线 | 一本一道波多野结衣av黑人 | 成人黄色免费网站 | 欧美亚洲一区二区在线观看 | 国产精品国产av | 黄色国产精品 | 女女百合高h喷汁呻吟玩具 www.亚洲一区 | 97超碰免费在线观看 | 国产精品黄色在线观看 | 特黄网站 | 天天色天天干天天 | 日韩三区在线观看 | 久久久av一区二区三区 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 少妇做爰免费理伦电影 | 人人精品久久 | 中文字幕日韩精品一区 | 夫妻淫语绿帽对白 | 操日本女人 | 懂色aⅴ国产一区二区三区 亚洲欧美国产另类 | 久久久久久国产精品免费播放 | 亚洲国产不卡 | 日韩美女在线视频 | av资源网址| 深夜精品视频 | 国产精品人妻一区二区三区 | 夜夜爽夜夜叫夜夜高潮漏水 | 精品熟妇视频一区二区三区 | 在线精品国产 | 日本免费三级网站 | 在线亚洲区| 91视频网址入口 | 污污网址在线观看 | 婷婷色吧 | 精品产国自在拍 | 成年人在线播放 | 在线理论视频 | 久久无毛| 亚洲av综合一区 | 在线看毛片网站 | 久久99精品国产麻豆婷婷洗澡 | 国产传媒一区二区三区 | 亚洲日本香蕉 | 成人天堂噜噜噜 | 一级美女大片 | 九色porny视频 | 在线无遮挡 | 天天综合日韩 | 亚洲一区三区 | 无遮挡边吃摸边吃奶边做 | 污视频91 | 健身教练巨大粗爽gay视频 | 国产成人无遮挡在线视频 | 亚洲一区自拍偷拍 | 蜜臀视频一区二区 | 五月婷婷在线观看 | 男女做激情爱呻吟口述全过程 | 福利姬在线播放 | 日日爱视频 | 老司机午夜免费视频 | 亚洲av激情无码专区在线播放 | 雪花飘电影在线观看免费高清 | 天堂在线精品 | 亚洲风情亚aⅴ在线发布 | a级片免费看| 特级西西人体4444xxxx | 国产av 一区二区三区 | 亚洲人成色777777精品音频 | 国产黄色片在线播放 | 亚洲自拍偷拍网 | 好男人香蕉影院 | 动漫精品一区 | 激情小视频 | 中文字幕欧美另类精品亚洲 | 亚洲精品视频在线播放 | 国产一区二区三区在线 | 亚洲国产精品久久久久婷婷老年 |