你的输入文件(find.in)包含两大部分。第一部分是信息部分,第二部分是提问部分,两部分在文件中相连。信息部分的第一行有两个整数N, M,分别为学生总数以及信息的条数,以下M行每行两个空格分开的整数A, B,意味着编号为A和B的两位同学在一个小组。提问部分的第一行为一个整数T,表示总共有T个问题,以下T行每行两个整数P, Q,含义是“编号为P和Q的两位同学是不是同一小组的?” 用c++写
时间: 2024-04-15 18:27:08 浏览: 45
201920201湖南省长沙麓山国际初三上第一次月考英语试题(无听力部分).docx
以下是用C++编写的解析输入文件和回答问题的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int N, M;
cin >> N >> M;
// 构建学生信息
vector<int> group(N + 1, 0);
for (int i = 1; i <= N; i++) {
group[i] = i; // 初始化每位学生的小组为自己
}
// 合并同组学生
for (int i = 0; i < M; i++) {
int A, B;
cin >> A >> B;
// 将A和B所在小组合并
int groupA = group[A];
int groupB = group[B];
for (int j = 1; j <= N; j++) {
if (group[j] == groupB) {
group[j] = groupA;
}
}
}
int T;
cin >> T;
// 回答问题
for (int i = 0; i < T; i++) {
int P, Q;
cin >> P >> Q;
if (group[P] == group[Q]) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}
```
你可以使用上述代码来解析输入文件并回答问题。当然,你可能需要根据实际情况对代码进行适当调整。希望对你有所帮助!
阅读全文