PAT 1039 Course List for Student (25分)
这道题在读题的时候就注意到它对学生的命名方式特殊,而不是随意一个string。
于是采用正常的思路,使用map和string做出来后,会因为最后一个测试用例数据庞大而超时。
还不能用cin这种比较慢的输入方式。
但是最后一个测试用例就只有两分,如果这是考试,我会果断放弃这两分不要了。
下面就把我用map和string和priority_queue的代码放上来,最后一例会超时。
#include <iostream> #include <algorithm> #include <queue> #include <map> #include <vector> using namespace std; map<string,priority_queue<int, vector<int>, greater<>>> m; int n,k; int main(){ cin>>n>>k; for(int i=0;i<k;i++){ int idx,num; cin>>idx>>num; for(int j=0;j<num;j++){ string tmp; cin>>tmp; m[tmp].push(idx); } } for(int i=0;i<n;i++){ string str; cin>>str; cout<<str<<" "<<m[str].size(); while(!m[str].empty()){ cout<<" "<<m[str].top(); m[str].pop(); } if(i<n-1)cout<<endl; } return 0; }

浙公网安备 33010602011771号