本文共 1992 字,大约阅读时间需要 6 分钟。
输入:6 5John Robert Frank Andrew Nancy DavidRobert is a child of JohnRobert is an ancestor of AndrewRobert is a sibling of NancyNancy is the parent of FrankJohn is a descendant of Andrew
输出:
TrueTrueTrueFalseFalse
//第一次写,无注释。#includeusing namespace std;struct People{ string name; int write; int parent;} people[105];map mp;int n,m;void init(){ cin>>n>>m; string ss,s; int len,x=0; cin>>people[0].name; people[0].parent=-1; people[0].write=0; getchar(); for(int i=1; i =0; j--) { if(people[i].write==people[j].write) { people[i].parent=people[j].parent; break; } if(people[i].write==people[j].write+2) { people[i].parent=j; break; } } }}bool find(int a,int b){ if(people[a].parent==b) return true; return a==0?false:find(people[a].parent,b);}bool judge(string s1,string relation,string s2){ switch (relation[0]) { case 'c': { if(people[mp[s1]].parent==mp[s2]) return true; break; } case 'p': { if(people[mp[s2]].parent==mp[s1]) return true; break; } case 's': { if(people[mp[s1]].parent==people[mp[s2]].parent) return true; break; } case 'a': { if(find(mp[s2],mp[s1])) return true; break; } case 'd': { if(find(mp[s1],mp[s2])) return true; break; } } return false;}void solve(){ int x=0; string s,s1,s2,r; for(int i=0; i >s) { x++; if(x==1) s1=s; if(x==6) s2=s; if(x==4) r=s; } if(judge(s1,r,s2)) cout<<"True"<
每天进步一点点,十天进步十点点,加油!
更多PTA作业代码都在我的博客中ps:答案仅供参考,请勿抄袭
转载地址:http://jlqbi.baihongyu.com/