1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int flag; 7 struct node 8 { 9 int dad,mom,sex,bh; 10 node():dad(0),mom(0),sex(0),bh(-1){} 11 }peo[100005]; 12 void mark(int x,int p,int cs) 13 { 14 if(cs==4||peo[x].dad==0) 15 return ; 16 17 18 19 if(peo[x].dad!=-1) 20 { 21 mark(peo[x].dad,p,cs+1); 22 peo[peo[x].dad].bh=p; 23 } 24 if(peo[x].mom!=-1) 25 { 26 peo[peo[x].mom].bh=p; 27 mark(peo[x].mom,p,cs+1); 28 } 29 } 30 void match(int x,int p,int cs) 31 { 32 if(cs==4||peo[x].dad==0||flag) 33 return ; 34 35 if(peo[x].dad!=-1) 36 { if(peo[peo[x].dad].bh==p) 37 flag=1; 38 else 39 match(peo[x].dad,p,cs+1); 40 } 41 if(peo[x].mom!=-1) 42 { if(peo[peo[x].mom].bh==p) 43 flag=1; 44 else 45 match(peo[x].mom,p,cs+1); 46 } 47 48 } 49 int main() 50 { 51 int n; 52 while(cin>>n) 53 { 54 int a,fa,ma; 55 char c; 56 for(int i=0;i<n;++i) 57 { 58 cin>>a>>c>>fa>>ma; 59 60 if(c=='M') 61 peo[a].sex=1; 62 else 63 peo[a].sex=0; 64 65 peo[a].dad=fa; 66 peo[a].mom=ma; 67 68 if(fa!=-1) 69 peo[fa].sex=1; 70 if(ma!=-1) 71 peo[ma].sex=0; 72 } 73 74 int m,x,y; 75 cin>>m; 76 for(int i=0;i<m;++i) 77 { 78 flag=0; 79 cin>>x>>y; 80 int j; 81 if(peo[x].sex==peo[y].sex) 82 cout<<"Never Mind"<<endl; 83 else 84 { 85 mark(x,i,0); 86 match(y,i,0); 87 if(flag) 88 cout<<"No"<<endl; 89 else 90 cout<<"Yes"<<endl; 91 } 92 } 93 } 94 }
分类:
DFS
, 天梯赛进阶题特训【L2】
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用