두 갈래 나무의 층수
선생님은 마보를 시험해 보고 싶은 문제가 하나 있는데, 마보는 할 줄 몰라서 네가 도와줄 것을 분명히 생각하고 있다.문제는 다음과 같다. 두 갈래 나무에게 이 두 갈래 나무를 층별로 인쇄해 주십시오.같은 레이어인 경우 왼쪽에서 오른쪽으로 인쇄해야 합니다.하나의 노드는 왼쪽 노드를 먼저 추가한 후에 오른쪽 노드를 추가하는 것이다. 즉, 추가 순서는 입력 순서와 일치한다.
형식 입력:
먼저 정수 T를 입력하여 - 총 T그룹 데이터 0을 나타냅니다.
출력 형식:
그룹마다 먼저 "Qi:"한 줄을 출력하면 첫 번째 문제를 표시하고, 그 다음에 각 문제의 두 갈래 트리 각 층의 노드를 출력하고, 같은 층의 노드는 공백으로 나누고, 같은 층의 출력은 한 줄(각 줄의 끝에 공백이 없음), 다른 층의 출력은 동행하지 않습니다(아래의 Sample Ouput 참조)
샘플 입력:
2
4 5
2 1
3 1
4 2
5 4
1 2
2 1
내보내기 예제:
Q1:
1
2 3
4
5
Q2:
1
2
이 녀석의 사상을 배워서 다음과 같은 코드를 만들었다.
#include
#include
#include
#include
using namespace std;
const int MAXM=101;
int level[MAXM];
vector arr[MAXM]; //arr[ ]=push_back( );
int main(){
int T;
while(scanf("%d",&T)!=EOF){
int k=0; //
while(T--){
k++;
int n,m; //n m
scanf("%d%d",&n,&m);
memset(level,0,sizeof(level));
memset(arr,0,sizeof(arr));
level[1]=1; // 1 1
arr[1].push_back(1);
int max_level=1; //
while(n--){
int a,b;
scanf("%d%d",&a,&b);
level[a]=level[b]+1;
arr[level[a]].push_back(a);
max_level=max_level>level[a]?max_level:level[a];
}
cout<
학습용 링크:
https://blog.csdn.net/chaokudeztt/article/details/104753459
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.