#22858: 求救~找不出問題點!!


rger3366@gmail.com (an)

學校 : 不指定學校
編號 : 121794
來源 : [219.70.203.121]
最後登入時間 :
2022-07-08 00:22:48
b518. 樹葉節點到根節點之路徑-商競103 -- 103學年度商業類程式設計競賽模擬題 | From: [219.70.193.104] | 發表日期 : 2020-10-07 18:56

我goole tree的圖片拿來當測資,並沒有發現問題,一直無法ac

 

#include<stdio.h>
#include<vector>
using namespace std;

const int maxn = 80; 

typedef struct node
{
    vector<int> child;

}node;

node Node[maxn];

void dfs(int i,vector<int> &path){
    if(Node[i].child.size() == 0)
    {
        if (path.size() ==1 )
        {
            printf("%d:N\n",i);
        }else
        {
            printf("%d:{",i);
            for (int y = path.size()-1; y > 1; y--)
            {   
                printf("%d,",path[y]);
            }
            printf("%d}\n",path[1]);
        }
        
        return;
    }
    path.push_back(i);
    int x;
    for(int x = 0; x < Node[i].child.size(); x++)
    {
        dfs(Node[i].child[x],path);   
    }
    path.pop_back();
}

void clearchild(void){
    for (size_t i = 0; i < maxn; i++)
    {
        Node[i].child.clear();
    }
    
}


int main(){
    int d;
    
    while (scanf("%d",&d) != EOF)
    {
        while(d--){
            clearchild();
            int edges;
            int a, b,root;
            vector<int> path;
            clearchild();
            scanf("%d",&edges);
            for (size_t i = 0; i < edges; i++)
            {
                scanf("%d,%d",&a,&b);
                if(b == 99){ 
                    root = a;
                }else
                {
                   Node[b].child.push_back(a);
                }
            }
            if (edges == 1)
            {
                printf("%d:N\n",a);
            }else
            {
                dfs(root,path);
                puts(""); 
            }
        }
        
    }
    return 0;
    
}
 
#22863: Re:求救~找不出問題點!!


rger3366@gmail.com (an)

學校 : 不指定學校
編號 : 121794
來源 : [219.70.203.121]
最後登入時間 :
2022-07-08 00:22:48
b518. 樹葉節點到根節點之路徑-商競103 -- 103學年度商業類程式設計競賽模擬題 | From: [219.70.193.104] | 發表日期 : 2020-10-07 21:48

我goole tree的圖片拿來當測資,並沒有發現問題,一直無法ac

 更:犯蠢 記得由小印到大

#include
#include
using namespace std;

const int maxn = 80; 

typedef struct node
{
    vector child;

}node;

node Node[maxn];

void dfs(int i,vector &path){
    if(Node[i].child.size() == 0)
    {
        if (path.size() ==1 )
        {
            printf("%d:N\n",i);
        }else
        {
            printf("%d:{",i);
            for (int y = path.size()-1; y > 1; y--)
            {   
                printf("%d,",path[y]);
            }
            printf("%d}\n",path[1]);
        }
        
        return;
    }
    path.push_back(i);
    int x;
    for(int x = 0; x < Node[i].child.size(); x++)
    {
        dfs(Node[i].child[x],path);   
    }
    path.pop_back();
}

void clearchild(void){
    for (size_t i = 0; i < maxn; i++)
    {
        Node[i].child.clear();
    }
    
}


int main(){
    int d;
    
    while (scanf("%d",&d) != EOF)
    {
        while(d--){
            clearchild();
            int edges;
            int a, b,root;
            vector path;
            clearchild();
            scanf("%d",&edges);
            for (size_t i = 0; i < edges; i++)
            {
                scanf("%d,%d",&a,&b);
                if(b == 99){ 
                    root = a;
                }else
                {
                   Node[b].child.push_back(a);
                }
            }
            if (edges == 1)
            {
                printf("%d:N\n",a);
            }else
            {
                dfs(root,path);
                puts(""); 
            }
        }
        
    }
    return 0;
    
}



 
ZeroJudge Forum