總時間限制: 60000ms
單個測試點時間限制: 6000ms
記憶體限制: 131064kb
描述對 物質分解記錄 的結構進行統計分析。
例如:給出乙份 物質分解記錄。
material_1
material_8
}material_9
material_10
}material_11
material_8
}material_13
}上述記錄的含義是,material_1分解為 material_2、material_9和material_10,material_2又分解為material_3、material_4、material_5和material_8。以此類推,大括號外書寫特定物質名稱,括號內表示此特定物質分解出來的子物質名稱,每個子物質還可再分解。
現輸入乙個物質名稱r,要求輸出所有和物質r在記錄中屬於同一層次且位置在r之後的物質名稱。
比如r=「material_1」 ,則應該輸出「material_11」;
比如r=「material_9」 ,則應該輸出「material_10」
如果r在****現了多次,則以其第一次出現為準,即僅輸出與第一次出現的r屬於同一層次且位置在r之後的語句內容。
比如r=「material_2」 ,則應該輸出
material_9
material_10
輸入輸入包含多組資料。第一行是物質分解記錄的份數,僅用乙個整數表示。從第二行開始,每組資料報括 物質分解記錄 和 所需查詢的物質r 兩部分,物質分解記錄樣式如描述中所示,r的內容和物質分解記錄之間有一行空行,下乙份記錄與上乙個r之間有兩行空行。
若輸入!則表示輸入結束。
為簡單起見,物質分解記錄中每一行的內容為「」或者乙個物質名稱,不會有其他情況(比如空行)出現。同時每行文字前不會有任何縮排。物質名稱是英文本母、數字和下劃線組成的字串。
輸出對每組資料輸出一行,如果r在記錄中找到,則輸出所有與r在同一層次且位置在r之後的物質名稱,名稱之間無需新增空格,緊密連線即可;否則輸出no。若r是其所在層次中最後乙個物質,則輸出"",即輸出乙個空字元。
樣例輸入
3
material_1
material_8
}material_9
material_10
}material_2
material_1
material_8
}material_9
material_10
}material_11
material_8
}material_13
}material_2
material_1
material_8
}material_9
material_10
}material_20
!
樣例輸出
material_9material_10
material_9material_10
no
提示
讀入資料時,需採用如下方式進行讀取。
例:若要讀取一行輸入內容,則
cin.getline(line, linesize, '\n');
sscanf(line, "%s", tmp);
其中line和tmp為陣列指標,型別為char* ,linesize為line所指向的陣列的規模,為int型。
所需讀取的內容最終是儲存在tmp陣列中。之後如需對讀取的內容進行操作,就對tmp進行操作即可,讀到空行時tmp長度即為0。
採用其他方法讀取可能會出現wa以及re,tle。
#include #include #include #include using namespace std;
char line[1005];
struct node
};void read_line()
void delete_tree(node *root)
bool isstop = 0;
void build_tree(node *root)
if (strcmp(line, "}") == 0)
return;
else if (strcmp(line, "
else
else }}
}node *find_node(node *root, string& s)
return null;
}void print_following_node(node *p)
printf("\n");
}int main()
system("pause");
return 0;
}
小波包分解樹
小波包將原始訊號逐級向下分解。圖1為用matlab繪製的小波包分解樹,分解層數為3層。樹中節點的命名規則如下 從 1,0 開始,1,0 為1號,1,1 是2號,依次類推,3,0 是7號,3,7 是14號。每個節點都有對應的小波包係數,此係數決定了頻率的大小,即頻域資訊,節點的順序決定了時域資訊,即頻...
sizzle分析記錄 分解流程
js form div p name aaron 解析的流程 編譯器 分5個步驟 涉及 tag元素 關係選擇器 屬性選擇器 1 通過tokenize詞法分析器分組 2 遍歷tokens,從右邊往左邊開始篩選,最快定位到目標元素合集 先看看有沒有搜尋器find,搜尋器就是瀏覽器一些原生的取dom介面,...
sizzle分析記錄 分解流程
js form div p name aaron 解析的流程 編譯器 分5個步驟 涉及 tag元素 關係選擇器 屬性選擇器 1 通過tokenize詞法分析器分組 2 遍歷tokens,從右邊往左邊開始篩選,最快定位到目標元素合集 先看看有沒有搜尋器find,搜尋器就是瀏覽器一些原生的取dom介面,...