比賽的時候愣是用map< string, int>的值代表了這個人所處家譜中的層次
後來借鑑了小明學長的思路, 給每個人編id號, 用值表示每個對應的id
用fa[maxn]存的是每個人的父親id, fa[id] = 父親的id
有乙個小問題, ac之後想關閉io同步提一波速, 沒料到pta很玄學地直接給我返了wa???
本地測沒問題, 檢查**也沒有混用, 按理說pta應該支援的呀? 唯一不確定的是getline(cin,s); 在關閉io同步之後會產生什麼特殊的化學反應嗎?? 搜了一波資料也沒找到相應的回答. 如果有清楚這個點是啥原因的dalao能夠告訴我~ 靴靴~
#include
#include
#include
#include
#include
#include
#include
#include
#define mst(a) memset(a,0,sizeof(a));
using
namespace
std;
/*parent (直系)父
child (直系)孩子
ancestor 祖先
sibling 同輩
descendant 後裔
*/const
int maxn = 100 + 5;
string s;
map maps;
int a[maxn], fa[maxn];
vector
vec[maxn];
bool dfs(int a, int b)
return
false;
}bool solve( string stra, string strb, char ch )
}int main()
k /= 2;
maps[name] = cnt++;
int id = maps[name];
if( k != 0 )
else fa[id] = -1; //最大祖先沒有father
a[k+1] = id; //更新當前層數的father
}while( test-- )
return
0;}
PTA 家譜處理
這題一開始以為是大模擬,但是看了別人以後的題解發現,有更好的解法。我們可以觀察出,這個輸入順序決定了每個人的num 2個空格一定是他的父親,所以直接記錄就行,lca暴力跳就可以了,不用倍增。include include include include include include include...
pta資料結構
是否二叉搜尋樹 這題只要是了解二叉查詢樹的特點。bool isbst bintree t while right1 return isbst t left isbst t right 線性探測法的查詢函式 主要注意雜湊函式,這裡那個常量是真的坑,卡了半天。position find hashtabl...
PTA資料結構單選
最近學習資料結構鍊錶,被每週作業題所困。現做題解,以此共勉。析 不帶頭節點的單向鍊錶,一定具有頭指標,且在這兒以頭指標冠以鍊錶名。頭指標指向第乙個節點的儲存位置。向空鍊錶插入元素,則讓該插入元素的鏈結位址為h 第乙個節點的位置 再使頭指標h指向該元素。析 頭節點 位於首節點之前,為空,則鏈結位址為n...