PAT 乙级 1065
为了运行不超时做了好多优化。1、题目说了最后输出要按递增顺序所以一开始定义数组就可以定义 setstring但是这玩意输出比较麻烦要写 auto i v2.begin(); ……2、map.count() 找数据 比 find 找数据快很多所以两次找数据都用 map这样才能不超时。3、find 的两种用法从字符串里找子串v.find(v[i]) ! string :: npos;从数组里找元素find(v.begin(), v.end(), 目标元素);#includebits/stdc.h using namespace std; int main() { int n, m; cin n; string s1, s2; mapstring, string mapp; mapstring, int mapp1; for(int i 0; i n; i ) { cin s1 s2; mapp[s1] s2; mapp[s2] s1; } string s3; cin m; vectorstring v1(m); for(int i 0; i m; i ) { cin s3; v1[i] s3; mapp1[v1[i]] 1; } setstring v2; int flag 0; for(int i 0; i m; i ) { if(mapp.count(v1[i]) mapp1.count(mapp[v1[i]]) ); else v2.insert(v1[i]); } cout v2.size() endl; for(auto i v2.begin(); i ! v2.end(); i ) { if(flag 1) cout ; flag 1; cout *i; } return 0; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2429400.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!