#include // 包含输入输出流库 #include // 包含字符串操作库 #include // 包含向量库 using namespace std; // 使用标准命名空间

const int N=1e5+10; // 定义常量N为100010 bool st[N]; // 定义布尔数组st,大小为N bool f=false; // 定义布尔变量f,并初始化为false char sex[N]; // 定义字符数组sex,大小为N vector v[N]; // 定义整型向量数组v,大小为N

void dfs(int u,int d) // 定义函数dfs,参数为整型u和整型d { if(d>=5) return; // 如果d大于等于5,则返回 st[u]=true; // 将st[u]置为true for(int i=0;i<v[u].size();i++) // 对于v[u]的每一个元素 { if(st[v[u][i]]) f=true; // 如果st[v[u][i]]为true,则将f置为true dfs(v[u][i],d+1); // 调用dfs函数,参数为v[u][i]和d+1 } }

int main() // 主函数 { int n; // 定义整型变量n cin>>n; // 输入n for(int i=0;i<n;i++) // 循环n次 { int id; // 定义整型变量id cin>>id; // 输入id char c; // 定义字符变量c cin>>c; // 输入c sex[id]=c; // 将sex[id]赋值为c int fa,ma; // 定义整型变量fa和ma cin>>fa>>ma; // 输入fa和ma if(~fa) // 如果fa不为-1 { sex[fa]='M'; // 将sex[fa]赋值为'M' v[id].push_back(fa); // 将fa添加到v[id]的末尾 } if(~ma) // 如果ma不为-1 { sex[ma]='F'; // 将sex[ma]赋值为'F' v[id].push_back(ma); // 将ma添加到v[id]的末尾 } } int k; // 定义整型变量k cin>>k; // 输入k while(k--) // 当k不为0时,循环 { int x,y; // 定义整型变量x和y cin>>x>>y; // 输入x和y f=false; // 将f置为false memset(st,false,sizeof st); // 将st数组全部置为false dfs(x,0); // 调用dfs函数,参数为x和0 dfs(y,0); // 调用dfs函数,参数为y和0 if(sex[x]==sex[y]) cout<<"Never Mind"<<endl; // 如果sex[x]等于sex[y],则输出"Never Mind" else{ if(!f) cout<<"Yes"<<endl; // 如果f为false,输出"Yes" else cout<<"No"<<endl; // 否则输出"No" } }

在该程序中给出注释#includeiostream#includecstring#includevectorusing namespace std;const int N=1e5+10;bool stN;bool f=false;char sexN;vectorint vN;void dfsint uint d ifd=5 return; stu=true; forint i=0

原文地址: https://www.cveoy.top/t/topic/iCyO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录