|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int main()
- {
- int n, m, k;
- string str;
- vector<map<string, int> > vec;
- cin >> n;
- for(int i = 0; i < n; ++i) {
- cin >> k;
- for(int j = 0; j < k; ++j) {
- cin >> str;
- [color=Red] vec[i][str] = 1; [/color] //引起程序卡死的语句
- }
- }
- cin >> m;
- vector<string> s;
- for(int i = 0; i < m; ++i) {
- cin >> str;
- bool flag = false;
- for(int j = 0; j < n; ++j) {
- if(vec[j][str]) {
- flag = true;
- break;
- }
- }
- if(!flag) s.push_back(str);
- }
- for(int i = 0; i < s.size() - 1; ++i) cout << s[i] << " ";
- cout << s[s.size() - 1] << endl;
- return 0;
- }
复制代码
上述代码:测试用例为:
- 3
- 3 11111 22222 55555
- 2 33333 44444
- 4 55555 66666 99999 77777
- 8
- 55555 44444 10000 88888 22222 11111 23333 88888
复制代码
但是输完第二行程序就因为而卡死, 是不能这样用吗,求dalao指点一下
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int main()
- {
- int n, m, k;
- string str;
- vector<map<string, int> > vec;
- cin >> n;
- for(int i = 0; i < n; ++i) {
- cin >> k;
- for(int j = 0; j < k; ++j) {
- cin >> str;
- //vec[i][str] = 1;
- vec.push_back(std::map<std::string, int>{{ str, j}});
- }
- }
- cin >> m;
- vector<string> s;
- for(int i = 0; i < m; ++i) {
- cin >> str;
- bool flag = false;
- for(int j = 0; j < n; ++j) {
- if(vec[j][str]) {
- flag = true;
- break;
- }
- }
- if(!flag) s.push_back(str);
- }
- for(int i = 0; i < s.size() - 1; ++i) cout << s[i] << " ";
- cout << s[s.size() - 1] << endl;
- return 0;
- }
复制代码
|
|