一.題目描述:
如果a,b是c的父母親,則a,b是c的parent,c是a,b的child,如果a,b是c的(外)祖父,祖母,則a,b是c的grandparent,c是a,b的grandchild,如果a,b是c的(外)曾祖父,曾祖母,則a,b是c的great-grandparent,c是a,b的great-grandchild,之後再多一輩,則在關係上加乙個great-。
輸入:
輸入包含多組測試用例,每組用例首先包含2個整數n(0<=n<=26)和m(0樣例輸入:
3 2abc
cdeefg
fabe
0 0樣例輸出:
great-grandparent
-二.題目分析.
調了半天,終於ac了。。但是看完題解,瞬間被自己蠢哭了,總是這麼不機智可怎麼好。。。b,c是a的雙親,所以a的孩子是c,b的孩子是c,完美的單射關係,從雙親找孩子匹配,就是強大並查集應用,太完美了。我卻從孩子匹配雙親,a的雙親是c,b,非要搞成一對多對映,從孩子找雙親,每次要考慮兩個雙親。其實第一眼看到時候,感覺和並查集很像,但是想到兩個雙親,沒辦法對映,於是又放棄了,有時候就是一瞬間靈活的問題,但願我慢慢機智起來!
三.**
1.遞迴
#include #include //0<=n<=26 01)
printf("grandparent\n");
}else //parent
while(ans>1)
printf("grandchild\n");}}
}return 0;
}
2.並查集
#includeusing namespace std;
int tree[1001]; //孩子節點
int relation(int a, int b)
return -1;}
int main()
while (m--)
if (t == 2)
if (t == 1)
}//else
}//while m
}return 0;
}
題目1035 找出直系親屬
題目描述 如果a,b是c的父母親,則a,b是c的parent,c是a,b的child,如果a,b是c的 外 祖父,祖母,則a,b是c的grandparent,c是a,b的grandchild,如果a,b是c的 外 曾祖父,曾祖母,則a,b是c的great grandparent,c是a,b的grea...
題目1035 找出直系親屬
題目描述 如果a,b是c的父母親,則a,b是c的parent,c是a,b的child,如果a,b是c的 外 祖父,祖母,則a,b是c的grandparent,c是a,b的grandchild,如果a,b是c的 外 曾祖父,曾祖母,則a,b是c的great grandparent,c是a,b的grea...
Jobdu 題目1035 找出直系親屬
題目描述 如果a,b是c的父母親,則a,b是c的parent,c是a,b的child,如果a,b是c的 外 祖父,祖母,則a,b是c的 grandparent,c是a,b的grandchild,如果a,b是c的 外 曾祖父,曾祖母,則a,b是c的great grandparent,c是a,b的gre...